> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # LanceDBストレージ LanceDBストレージ実装は、従来のデータストレージとベクトル操作の両方に優れたLanceDBデータベースシステムを使用し、高性能なストレージソリューションを提供します。 > **Observabilityはサポートされていません:** LanceDBストレージは**Observabilityドメインをサポートしていません**。`MastraStorageExporter`のトレースをLanceDBに永続化できず、LanceDBだけをストレージProviderとして使用すると[Studio](https://mastra.zisheng.pro/ja/docs/studio/overview)のObservability機能も動作しません。Observabilityを有効にするには、[複合ストレージ](https://mastra.zisheng.pro/ja/reference/storage/composite)を使用して、ObservabilityデータをClickHouseなどの対応Providerに振り分けてください。 ## インストール **npm**: ```bash npm install @mastra/lance@latest ``` **pnpm**: ```bash pnpm add @mastra/lance@latest ``` **Yarn**: ```bash yarn add @mastra/lance@latest ``` **Bun**: ```bash bun add @mastra/lance@latest ``` ## 使用方法 ### 基本的なストレージの使用方法 ```typescript 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()` **name** (`string`): ストレージインスタンスの名前識別子 **uri** (`string`): LanceDBデータベースへの接続URI。ローカルパス、クラウドDBのURL、S3バケットのURLを指定できます **options** (`ConnectionOptions`): タイムアウト設定や認証など、LanceDBの接続オプション ## 補足事項 ### スキーマ管理 LanceStorage実装は、スキーマの作成と更新を自動で処理します。Mastraのスキーマ型を、LanceDBが内部で使用するApache Arrowデータ型に次のように対応付けます。 - `text`, `uuid` → Utf8 - `int`, `integer` → Int32 - `float` → Float32 - `jsonb`, `json` → Utf8(シリアライズ済み) - `binary` → Binary ### 初期化 ストレージをMastraクラスに渡すと、ストレージ操作の前に`init()`が自動で呼び出されます。 ```typescript 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()`を明示的に呼び出す必要があります。 ```typescript 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ストレージは、さまざまなデプロイ環境に合わせて設定できます。 - **ローカル開発**: 開発とテストにはローカルファイルパスを使用します ```text /path/to/db ``` - **クラウドへのデプロイ**: ホストされたLanceDBインスタンスに接続します ```text db://host:port ``` - **S3ストレージ**: 大容量のクラウドストレージとしてAmazon S3を使用します ```text s3://bucket/db ``` ### テーブル管理 LanceStorageは、テーブルを管理するための次のメソッドを提供します。 - カスタムスキーマでテーブルを作成 - テーブルを削除 - テーブルをクリア(すべてのレコードを削除) - キーでレコードを読み込み - 単一または複数のレコードを挿入