Terminologie
AutoID
AutoID est un attribut du champ primaire qui détermine s'il faut activer l'incrémentation automatique (AutoIncrement) pour ce champ. La valeur d'AutoID est définie en fonction d'un horodatage. Pour plus d'informations, reportez-vous à create_schema.
Index automatique
Milvus détermine automatiquement le type d’index et les paramètres les plus appropriés pour un champ spécifique en s’appuyant sur des données empiriques. Cette fonctionnalité est idéale lorsque vous n’avez pas besoin de contrôler les paramètres spécifiques de l’index. Pour plus d’informations, consultez add_index.
Attu
Attu est un outil d'administration tout-en-un pour Milvus qui réduit considérablement la complexité et le coût de gestion du système.
Birdwatcher
Birdwatcher est un outil de débogage pour Milvus qui se connecte à etcd, vous permettant de surveiller l'état du serveur Milvus et d'effectuer des ajustements en temps réel. Il prend également en charge les sauvegardes de fichiers etcd, ce qui facilite le dépannage pour les développeurs.
Bulk Writer
Bulk Writer est un outil de traitement des données fourni par les SDK Milvus (par exemple PyMilvus, Java SDK), conçu pour convertir des ensembles de données brutes dans un format compatible avec Milvus afin de permettre une importation efficace.
Bulk Insert
Bulk Insert est une API qui améliore les performances d'écriture en permettant l'importation de plusieurs fichiers en une seule requête, optimisant ainsi les opérations sur les grands ensembles de données.
Cardinal
Cardinal, développé par Zilliz Cloud, est un algorithme de recherche vectorielle de pointe qui offre une qualité et des performances de recherche inégalées. Grâce à sa conception innovante et à ses optimisations poussées, Cardinal surpasse Knowhere de plusieurs fois, voire d’un ordre de grandeur, tout en s’adaptant à divers scénarios de production, tels que des tailles K variables, un filtrage intensif, différentes distributions de données, etc.
Channel
Milvus utilise deux types de canaux, PChannel et VChannel, dans le cadre de l’architecture de son service de streaming. Chaque PChannel correspond à un flux WAL géré par Woodpecker, tandis que chaque VChannel correspond à un shard au sein d’une collection. Le service de streaming gère ces canaux afin de garantir la cohérence des données et la récupération en cas de panne.
Collection
Dans Milvus, une collection équivaut à une table dans un système de gestion de base de données relationnelle (SGBDR). Les collections sont des objets logiques majeurs utilisés pour stocker et gérer des entités. Pour plus d’informations, consultez la section Gérer les collections.
Dépendance
Une dépendance est un programme dont un autre programme a besoin pour fonctionner. Les dépendances de Milvus comprennent etcd (qui stocke les métadonnées), MinIO ou S3 (stockage d’objets) et une file d’attente de messages telle que Woodpecker (qui gère les journaux d’instantanés). Pour plus d’informations, consultez la section Infrastructure de données.
Schéma dynamique
Le schéma dynamique vous permet d’insérer des entités comportant de nouveaux champs dans une collection sans modifier le schéma existant. Cela signifie que vous pouvez insérer des données sans connaître le schéma complet d’une collection et inclure des champs qui ne sont pas encore définis. Vous pouvez activer cette fonctionnalité sans schéma en activant le champ dynamique lors de la création d’une collection. Pour plus d’informations, consultez la section « Activer le champ dynamique ».
Représentations vectorielles
Milvus propose des fonctions d’embedding intégrées compatibles avec les principaux fournisseurs d’embedding. Avant de créer une collection dans Milvus, vous pouvez utiliser ces fonctions pour générer des embeddings pour vos ensembles de données, ce qui simplifie le processus de préparation des données et les recherches vectorielles. Pour créer des embeddings en pratique, consultez la section « Utilisation du modèle PyMilvus pour générer des embeddings de texte ».
Entité
Une entité est constituée d’un ensemble de champs représentant des objets du monde réel. Chaque entité dans Milvus est représentée par une clé primaire unique.
Vous pouvez personnaliser les clés primaires. Si vous ne les configurez pas manuellement, Milvus attribue automatiquement une clé primaire aux entités. Si vous choisissez de personnaliser la clé primaire, notez que Milvus ne prend pas en charge la déduplication des clés primaires pour le moment. Par conséquent, il peut y avoir des clés primaires en double au sein d’une même collection. Pour plus d’informations, consultez la section « Insérer des entités ».
Champ
Un champ d’une collection Milvus équivaut à une colonne d’une table dans un SGBDR. Les champs peuvent être soit des champs scalaires pour les données structurées (par exemple, des nombres, des chaînes de caractères), soit des champs vectoriels pour l’intégration de vecteurs.
Filtre
Milvus prend en charge le filtrage scalaire via la recherche avec des prédicats, ce qui vous permet de définir des conditions de filtrage au sein des requêtes et des recherches afin d’affiner les résultats.
Recherche filtrée
La recherche filtrée applique des filtres scalaires aux recherches vectorielles, ce qui vous permet d'affiner les résultats de recherche en fonction de critères spécifiques. Pour plus d'informations, consultez la section Recherche filtrée.
Recherche hybride
La recherche hybride est une API disponible depuis la version 2.4.0 de Milvus. Elle vous permet d'effectuer des recherches sur plusieurs champs vectoriels et de les fusionner. Lorsqu'une recherche vectorielle est combinée à un filtrage par champ scalaire, on parle de « recherche filtrée ». Pour plus d'informations, consultez la section Recherche hybride.
Index
Un index vectoriel est une structure de données réorganisée dérivée de données brutes qui peut considérablement accélérer le processus de recherche de similarité vectorielle. Milvus prend en charge un large éventail de types d’index, tant pour les champs vectoriels que pour les champs scalaires. Pour plus d’informations, consultez la section Types d’index vectoriels.
Connecteur Kafka-Milvus
Le connecteur Kafka-Milvus désigne un connecteur de destination Kafka pour Milvus. Il vous permet de transférer en continu des données vectorielles de Kafka vers Milvus.
Knowhere
Knowhere est le moteur d’exécution vectorielle central de Milvus, qui intègre plusieurs bibliothèques de recherche de similarité vectorielle, notamment Faiss, Hnswlib et Annoy. Knowhere est également conçu pour prendre en charge le calcul hétérogène. Il détermine sur quel matériel (CPU ou GPU) exécuter la création d’index et les requêtes de recherche. C’est de là que Knowhere tire son nom : il « sait » où exécuter les opérations.
Instantané de journal
Un instantané de journal est un journal binaire, une unité plus petite au sein d’un segment, qui enregistre et gère les mises à jour et les modifications apportées aux données dans Milvus. Les données d’un segment sont conservées dans plusieurs journaux binaires. Il existe trois types de journaux binaires dans Milvus : InsertBinlog, DeleteBinlog et DDLBinlog. Pour plus d’informations, consultez la section Stockage des métadonnées.
Type de métrique
Les types de métriques de similarité sont utilisés pour mesurer les similarités entre des vecteurs. Actuellement, Milvus prend en charge la distance euclidienne (L2), le produit scalaire (IP), la similarité cosinus (COSINE) et les métriques binaires. Vous pouvez choisir le type de métrique le plus approprié en fonction de votre scénario. Pour plus d’informations, consultez la section Métriques de similarité.
MemoryBuffer
MemoryBuffer est un mode de déploiement allégé de Woodpecker qui met temporairement en mémoire tampon les écritures entrantes, puis les transfère périodiquement vers un stockage d’objets dans le cloud. Ce mode est particulièrement adapté aux charges de travail comportant de nombreux traitements par lots dans des déploiements à petite échelle ou des environnements de production qui privilégient la simplicité au détriment des performances. Pour plus d’informations, consultez la section Architecture de Woodpecker.
Mmap
Les fichiers mappés en mémoire permettent une gestion efficace des données en mappant directement le contenu des fichiers en mémoire. Cela s’avère particulièrement utile lorsque la mémoire est limitée et qu’il n’est pas possible de charger l’intégralité des données. Cette technique peut augmenter la capacité de stockage des données et maintenir les performances dans une certaine mesure. Cependant, si les données dépassent largement la capacité de la mémoire, les vitesses de recherche et de requête pourraient diminuer de manière significative. Pour plus d’informations, consultez la section « Stockage de données avec MMap ».
Milvus Backup
Milvus Backup est un outil permettant de créer des copies des données, qui peuvent être utilisées pour restaurer les données d’origine en cas de perte.
Milvus CDC
Milvus CDC (capture des données modifiées) est un outil utilisé pour répliquer les modifications de données d’un cluster Milvus vers un autre, dans le cadre d’une reprise après sinistre de type « actif-passif ».
CLI Milvus
L'interface de ligne de commande (CLI)de Milvus est un outil en ligne de commande qui prend en charge la connexion à la base de données, les opérations sur les données, ainsi que l'importation et l'exportation de données. Basée sur le SDK Python de Milvus, elle permet l'exécution de commandes via un terminal à l'aide d'invites de commande interactives.
Milvus Migration
Milvus Migration est un outil open source conçu pour faciliter la migration des données depuis diverses sources vers Milvus 2.x.
Cluster Milvus
Dans le cadre d’un déploiement en cluster de Milvus, les services sont fournis par un groupe de nœuds afin d’assurer une haute disponibilité et une évolutivité aisée.
Milvus en mode autonome
Dans le cadre d'un déploiement autonome de Milvus, toutes les opérations, y compris l'insertion de données, la création d'index et la recherche de similarité vectorielle, sont effectuées au sein d'un seul et même processus.
Multi-vecteurs
Depuis la version 2.4.0, Milvus prend en charge plusieurs champs vectoriels au sein d’une même collection. Pour plus d’informations, consultez la section « Recherche hybride ».
Partition
Une partition est une subdivision d'une collection. Milvus prend en charge la division des données d'une collection en plusieurs parties sur le stockage physique. Ce processus s'appelle le partitionnement, et chaque partition peut contenir plusieurs segments. Pour plus d'informations, consultez la section « Gérer les partitions ».
Clé de partition
L'attribut « clé de partition » d'un champ permet de répartir les entités dans des partitions distinctes en fonction de la valeur de leur clé de partition. Ce regroupement garantit que les entités partageant la même valeur de clé sont stockées ensemble, ce qui peut accélérer les opérations de recherche en permettant au système d'ignorer les partitions non pertinentes lors des requêtes filtrées par le champ de clé de partition. Pour plus d'informations, consultez la section « Utilisation de la clé de partition ».
PChannel
PChannel signifie « canal physique ». Chaque PChannel correspond à un flux WAL géré par Woodpecker. Par défaut, un groupe de PChannels est attribué pour stocker les journaux enregistrant les insertions, suppressions et mises à jour de données lors du démarrage du cluster Milvus. Pour plus d’informations, consultez la section « Service de streaming ».
PyMilvus
PyMilvus est un SDK Python de Milvus. Son code source est open source et hébergé sur GitHub. Vous avez la possibilité de choisir entre MilvusClient (nouvelle version du SDK Python) et le module ORM d’origine pour communiquer avec Milvus.
Requête
Query est une API qui effectue un filtrage scalaire à l’aide d’une expression booléenne spécifiée comme filtre. Pour plus d’informations, consultez la section « Get & Scalar Query ».
QuorumBuffer
QuorumBuffer est un mode de déploiement de Woodpecker conçu pour les charges de travail de lecture/écriture à haute fréquence et sensibles à la latence, nécessitant à la fois une réactivité en temps réel et une forte tolérance aux pannes. Il fonctionne comme un tampon d’écriture à haute vitesse avec des écritures par quorum à trois répliques, garantissant une forte cohérence et une haute disponibilité. Pour plus d’informations, consultez la section « Architecture de Woodpecker ».
Recherche par plage
La recherche par plage vous permet de trouver des vecteurs situés à une distance spécifiée de votre vecteur de recherche. Pour plus d’informations, consultez la section « Recherche par plage ».
Schéma
Le schéma correspond aux métadonnées qui définissent le type de données et les propriétés de celles-ci. Chaque collection dispose de son propre schéma de collection, qui définit tous les champs de la collection, l’activation de l’attribution automatique d’identifiants (clé primaire) et la description de la collection. Les schémas de champs sont également inclus dans les schémas de collection ; ils définissent le nom, le type de données et d’autres propriétés d’un champ. Pour plus d’informations, consultez la section « Gérer le schéma ».
Recherche
La recherche est une API qui effectue une opération de recherche de similarité vectorielle, nécessitant des données vectorielles pour son exécution. Pour plus d’informations, consultez la section « Recherche à vecteur unique ».
Segment
Un segment est un fichier de données créé automatiquement qui stocke les données insérées. Une collection peut contenir plusieurs segments, et chaque segment peut contenir de nombreuses entités. Lors d’une recherche par similarité vectorielle, Milvus examine chaque segment pour compiler les résultats de la recherche.
Il existe deux types de segments : les segments en croissance et les segments scellés. Un segment en croissance continue de collecter de nouvelles données jusqu’à ce qu’il atteigne un seuil spécifique ou une limite de temps, après quoi il est scellé. Une fois scellé, un segment n’accepte plus de nouvelles données et est transféré vers un stockage d’objets. Dans le même temps, les données entrantes sont acheminées vers un nouveau segment en croissance. Le passage d’un segment en croissance à un segment scellé est déclenché soit par l’atteinte de la limite d’entités prédéfinie, soit par le dépassement de la durée maximale autorisée dans l’état « en croissance ». Pour plus d’informations, reportez-vous à la section « Détails de conception ».
Connecteur Spark-Milvus
Le connecteur Spark-Milvus assure une intégration transparente entre Apache Spark et Milvus, en combinant les fonctionnalités de traitement des données et d’apprentissage automatique (ML) d’Apache Spark avec les capacités de stockage et de recherche de données vectorielles de Milvus.
Shard
Milvus améliore les performances d’écriture des données en répartissant les opérations d’écriture sur plusieurs nœuds à l’aide de shards, organisés selon le hachage des clés primaires. Cela permet d’exploiter les capacités de calcul parallèle du cluster.
Le partitionnement permet de réduire la charge de lecture en spécifiant un nom de partition, tandis que le sharding répartit la charge d’écriture entre plusieurs serveurs.
Vecteur clairsemé
Les vecteurs clairsemés représentent des mots ou des expressions à l’aide d’embeddings vectoriels dans lesquels la plupart des éléments sont nuls, un seul élément non nul indiquant la présence d’un mot spécifique. Les modèles à vecteurs clairsemés, tels que SPLADEv2, surpassent les modèles denses en matière de recherche de connaissances hors domaine, de prise en compte des mots-clés et d’interprétabilité. Pour plus d’informations, consultez la section Vecteurs clairsemés.
Service de streaming
Le service de streaming est un concept désignant le module du système de streaming interne de Milvus, construit autour du journal d’écriture anticipée (WAL) pour prendre en charge diverses fonctions liées au streaming. Celles-ci incluent l’ingestion et l’abonnement aux données en streaming, la récupération après défaillance de l’état du cluster, la conversion des données en streaming en données historiques et les requêtes sur des données en croissance. Le service est composé des composants « Coordinateur de streaming », « Cluster de nœuds de streaming » et « Client de streaming ». Pour plus d’informations, consultez la section « Service de streaming ».
Données non structurées
Les données non structurées, notamment les images, les vidéos, les fichiers audio et le langage naturel, sont des informations qui ne suivent pas de modèle ni de mode d’organisation prédéfini. Ce type de données représente environ 80 % des données mondiales et peut être converti en vecteurs à l’aide de divers modèles d’intelligence artificielle (IA) et d’apprentissage automatique (ML).
VChannel
VChannel signifie « canal virtuel ». Chaque VChannel représente un segment (shard) d’une collection. À chaque collection est attribué un groupe de VChannels pour l’enregistrement des insertions, suppressions et mises à jour de données. Les VChannels sont séparés logiquement mais partagent physiquement des ressources via le service de streaming. Pour plus d’informations, consultez la section Service de streaming.
Vecteur
Un vecteur d’embedding est une abstraction des caractéristiques de données non structurées, telles que les e-mails, les données de capteurs IoT, les photos Instagram, les structures protéiques, etc. Mathématiquement parlant, un vecteur d’embedding est un tableau de nombres à virgule flottante ou de valeurs binaires. Des techniques d’embedding modernes sont utilisées pour convertir des données non structurées en vecteurs d’embedding. Milvus prend en charge à la fois les vecteurs denses et clairsemés depuis la version 2.4.0.
Stockage WAL
Le stockage WAL (Write-Ahead Log) est le fondement de la durabilité et de la cohérence des données dans les systèmes distribués. Avant qu’une modification ne soit validée, elle est d’abord enregistrée dans un journal, ce qui garantit qu’en cas de panne, vous pouvez reprendre exactement là où vous vous étiez arrêté. Milvus utilise Woodpecker comme système de stockage WAL, qui prend en charge à la fois les modes MemoryBuffer et QuorumBuffer. Pour plus d’informations, consultez la section Architecture de Woodpecker.
Woodpecker
Woodpecker est un système WAL natif du cloud intégré à Milvus 2.6 qui remplace Kafka et Pulsar. Grâce à son architecture sans disque et à ses deux modes de déploiement (MemoryBuffer et QuorumBuffer), il offre un débit élevé, une faible charge opérationnelle et une évolutivité transparente sur le stockage objet. Pour plus d’informations, consultez la section Architecture de Woodpecker.
Zilliz Cloud
Milvus entièrement géré sur Zilliz Cloud, avec davantage de fonctionnalités d'entreprise et des performances hautement optimisées.