> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Stockage LanceDB L’implémentation du stockage LanceDB fournit une solution de stockage hautes performances qui utilise le système de base de données LanceDB, particulièrement efficace pour le stockage traditionnel des données comme pour les opérations vectorielles. > **Observability non prise en charge:** Le stockage LanceDB **ne prend pas en charge le domaine Observability**. Les Traces de `MastraStorageExporter` ne peuvent pas être conservées dans LanceDB, et les fonctionnalités d’Observability de [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview) ne fonctionneront pas si LanceDB est votre seul Provider de stockage. Pour activer Observability, utilisez un [stockage composite](https://mastra.zisheng.pro/fr/reference/storage/composite) afin d’acheminer les données d’Observability vers un Provider compatible tel que ClickHouse. ## Installation **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 ``` ## Utilisation ### Utilisation de base du stockage ```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' }, }) ``` ## Paramètres ### `LanceStorage.create()` **name** (`string`): Nom identifiant l’instance de stockage **uri** (`string`): URI de connexion à la base de données LanceDB. Peut être un chemin local, une URL de base de données cloud ou une URL de bucket S3 **options** (`ConnectionOptions`): Options de connexion à LanceDB, telles que le délai maximal, l’authentification, etc. ## Remarques complémentaires ### Gestion des schémas L’implémentation LanceStorage gère automatiquement la création et la mise à jour des schémas. Elle associe les types de schéma Mastra aux types de données Apache Arrow utilisés en interne par LanceDB : - `text`, `uuid` → Utf8 - `int`, `integer` → Int32 - `float` → Float32 - `jsonb`, `json` → Utf8 (serialized) - `binary` → Binary ### Initialisation Lorsque vous transmettez le stockage à la classe Mastra, `init()` est appelée automatiquement avant toute opération de stockage : ```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 }) ``` Si vous utilisez directement le stockage sans Mastra, vous devez appeler explicitement `init()` pour créer les tables : ```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: '...' }) ``` > **Attention:** Si `init()` n’est pas appelée, les tables ne seront pas créées et les opérations de stockage échoueront silencieusement ou lèveront des erreurs. ### Options de déploiement Le stockage LanceDB peut être configuré pour différents scénarios de déploiement : - **Développement local** : utilisez un chemin de fichier local pour le développement et les tests ```text /path/to/db ``` - **Déploiement cloud** : connectez-vous à une instance LanceDB hébergée ```text db://host:port ``` - **Stockage S3** : utilisez Amazon S3 pour un stockage cloud de grande capacité ```text s3://bucket/db ``` ### Gestion des tables LanceStorage fournit des méthodes pour gérer les tables : - Créer des tables avec des schémas personnalisés - Supprimer des tables - Vider des tables en supprimant tous les enregistrements - Charger des enregistrements par clé - Insérer un seul enregistrement ou un lot d’enregistrements