LanceDBストレージ
LanceDBストレージ実装は、従来のデータストレージとベクトル操作の両方に優れたLanceDBデータベースシステムを使用し、高性能なストレージソリューションを提供します。
Observabilityはサポートされていません
インストールインストールへの直接リンク
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/lance@latest
pnpm add @mastra/lance@latest
yarn add @mastra/lance@latest
bun add @mastra/lance@latest
使用方法使用方法への直接リンク
基本的なストレージの使用方法基本的なストレージの使用方法への直接リンク
import { LanceStorage } from '@mastra/lance'
// Connect to a local database
const storage = await LanceStorage.create('my-storage', '/path/to/db')
// Connect to a LanceDB cloud database
const storage = await LanceStorage.create('my-storage', 'db://host:port')
// Connect to a cloud database with custom options
const storage = await LanceStorage.create('my-storage', 's3://bucket/db', {
storageOptions: { timeout: '60s' },
})
パラメーターパラメーターへの直接リンク
LanceStorage.create()lancestoragecreateへの直接リンク
name:
string
ストレージインスタンスの名前識別子
uri:
string
LanceDBデータベースへの接続URI。ローカルパス、クラウドDBのURL、S3バケットのURLを指定できます
options?:
ConnectionOptions
タイムアウト設定や認証など、LanceDBの接続オプション
補足事項補足事項への直接リンク
スキーマ管理スキーマ管理への直接リンク
LanceStorage実装は、スキーマの作成と更新を自動で処理します。Mastraのスキーマ型を、LanceDBが内部で使用するApache Arrowデータ型に次のように対応付けます。
text,uuid→ Utf8int,integer→ Int32float→ Float32jsonb,json→ Utf8(シリアライズ済み)binary→ Binary
初期化初期化への直接リンク
ストレージをMastraクラスに渡すと、ストレージ操作の前にinit()が自動で呼び出されます。
import { Mastra } from '@mastra/core'
import { LanceStorage } from '@mastra/lance'
const storage = await LanceStorage.create('my-storage', '/path/to/db')
const mastra = new Mastra({
storage, // init() is called automatically
})
Mastraを介さずにストレージを直接使用する場合は、テーブルを作成するためにinit()を明示的に呼び出す必要があります。
import { LanceStorage } from '@mastra/lance'
const storage = await LanceStorage.create('my-storage', '/path/to/db')
// Required when using storage directly
await storage.init()
// Access domain-specific stores via getStore()
const memoryStore = await storage.getStore('memory')
const thread = await memoryStore?.getThreadById({ threadId: '...' })
警告
init()を呼び出さないとテーブルが作成されず、ストレージ操作が何も通知せずに失敗するか、エラーがスローされます。
デプロイ方法デプロイ方法への直接リンク
LanceDBストレージは、さまざまなデプロイ環境に合わせて設定できます。
- ローカル開発: 開発とテストにはローカルファイルパスを使用します
/path/to/db
- クラウドへのデプロイ: ホストされたLanceDBインスタンスに接続します
db://host:port
- S3ストレージ: 大容量のクラウドストレージとしてAmazon S3を使用します
s3://bucket/db
テーブル管理テーブル管理への直接リンク
LanceStorageは、テーブルを管理するための次のメソッドを提供します。
- カスタムスキーマでテーブルを作成
- テーブルを削除
- テーブルをクリア(すべてのレコードを削除)
- キーでレコードを読み込み
- 単一または複数のレコードを挿入