milvus-logo
LFAI
Home
  • Konzepte

Terminologie

AutoID

AutoID ist ein Attribut des Primärfelds, das bestimmt, ob AutoIncrement für das Primärfeld aktiviert werden soll. Der Wert von AutoID wird auf der Grundlage eines Zeitstempels definiert. Weitere Informationen finden Sie unter create_schema.

Auto-Index

Milvus entscheidet automatisch über den am besten geeigneten Indextyp und die Parameter für ein bestimmtes Feld auf der Grundlage empirischer Daten. Dies ist ideal für Situationen, in denen Sie die spezifischen Index-Parameter nicht kontrollieren müssen. Weitere Informationen finden Sie unter add_index.

Attu

Attu ist ein All-in-One-Verwaltungstool für Milvus, das die Komplexität und die Kosten der Verwaltung des Systems erheblich reduziert.

Birdwatcher

Birdwatcher ist ein Debugging-Tool für Milvus, das sich mit etcd verbindet und es Ihnen ermöglicht, den Status des Milvus-Servers zu überwachen und Anpassungen in Echtzeit vorzunehmen. Birdwatcher unterstützt auch die Sicherung von etcd-Dateien und hilft den Entwicklern bei der Fehlersuche.

Bulk Writer

Bulk Writer ist ein Datenverarbeitungstool, das von den Milvus-SDKs (z. B. PyMilvus, Java SDK) bereitgestellt wird und dazu dient, Rohdatensätze in ein mit Milvus kompatibles Format zu konvertieren, um sie effizient zu importieren.

Bulk-Einfügen

Bulk Insert ist eine API, die die Schreibleistung verbessert, indem sie es ermöglicht, mehrere Dateien in einer einzigen Anfrage zu importieren und so die Arbeit mit großen Datensätzen zu optimieren.

Kardinal

Cardinal, entwickelt von Zilliz Cloud, ist ein hochmoderner Vektorsuchalgorithmus, der eine unvergleichliche Suchqualität und -leistung bietet. Mit seinem innovativen Design und umfangreichen Optimierungen übertrifft Cardinal Knowhere um ein Vielfaches bis zu einer Größenordnung, während er adaptiv mit verschiedenen Produktionsszenarien umgeht, wie z.B. variierende K-Größen, hohe Filterung, unterschiedliche Datenverteilungen, usw.

Kanal

Milvus verwendet zwei Arten von Kanälen, PChannel und VChannel. Jeder PChannel entspricht einem Topic für die Protokollspeicherung, während jeder VChannel einem Shard in einer Sammlung entspricht.

Sammlung

In Milvus ist eine Sammlung das Äquivalent zu einer Tabelle in einem relationalen Datenbankmanagementsystem (RDBMS). Sammlungen sind wichtige logische Objekte, die zum Speichern und Verwalten von Entitäten verwendet werden. Weitere Informationen finden Sie unter Verwalten von Sammlungen.

Abhängigkeiten

Eine Abhängigkeit ist ein Programm, von dem ein anderes Programm abhängt, um zu funktionieren. Zu den Abhängigkeiten von Milvus gehören etcd (speichert Metadaten), MinIO oder S3 (Objektspeicher) und Pulsar (verwaltet Snapshot-Protokolle). Weitere Informationen finden Sie unter Verwalten von Abhängigkeiten.

Dynamisches Schema

Mit einem dynamischen Schema können Sie Entitäten mit neuen Feldern in eine Sammlung einfügen, ohne das vorhandene Schema zu ändern. Dies bedeutet, dass Sie Daten einfügen können, ohne das vollständige Schema einer Sammlung zu kennen, und dass Sie Felder einschließen können, die noch nicht definiert sind. Sie können diese schemafreie Fähigkeit aktivieren, indem Sie beim Erstellen einer Sammlung das dynamische Feld aktivieren. Weitere Informationen finden Sie unter Dynamisches Feld aktivieren.

Einbettungen

Milvus bietet integrierte Einbettungsfunktionen, die mit gängigen Einbettungsanbietern zusammenarbeiten. Bevor Sie eine Sammlung in Milvus erstellen, können Sie diese Funktionen verwenden, um Einbettungen für Ihre Datensätze zu generieren und so den Prozess der Datenvorbereitung und Vektorsuche zu rationalisieren. Wie Sie Einbettungen in Aktion erstellen können, erfahren Sie unter Verwendung des PyMilvus-Modells zur Erzeugung von Texteinbettungen.

Entität

Eine Entität besteht aus einer Gruppe von Feldern, die Objekte der realen Welt darstellen. Jede Entität in Milvus wird durch einen eindeutigen Primärschlüssel dargestellt.

Sie können die Primärschlüssel anpassen. Wenn Sie keine manuelle Konfiguration vornehmen, weist Milvus den Entitäten automatisch den Primärschlüssel zu. Wenn Sie sich entscheiden, den Primärschlüssel anzupassen, beachten Sie, dass Milvus derzeit keine Primärschlüssel-Deduplizierung unterstützt. Daher kann es doppelte Primärschlüssel in derselben Sammlung geben. Weitere Informationen finden Sie unter Entitäten einfügen.

Feld

Ein Feld in einer Milvus-Sammlung ist äquivalent zu einer Tabellenspalte in einem RDBMS. Felder können entweder skalare Felder für strukturierte Daten (z.B. Zahlen, Strings) oder Vektorfelder für die Einbettung von Vektoren sein.

Filtern

Milvus unterstützt die skalare Filterung durch die Suche mit Prädikaten, so dass Sie Filterbedingungen innerhalb von Abfragen und Suchen definieren können, um die Ergebnisse zu verfeinern.

Die gefilterte Suche wendet skalare Filter auf Vektorsuchen an und ermöglicht es Ihnen, die Suchergebnisse anhand bestimmter Kriterien zu verfeinern. Weitere Informationen finden Sie unter Gefilterte Suche.

Diehybride Suche ist eine API für die hybride Suche seit Milvus 2.4.0. Sie können mehrere Vektorfelder durchsuchen und diese fusionieren. Eine Vektorsuche, die mit der Filterung von Skalarfeldern kombiniert wird, wird als "gefilterte Suche" bezeichnet. Weitere Informationen finden Sie unter Hybride Suche.

Index

Ein Vektorindex ist eine reorganisierte Datenstruktur, die aus Rohdaten abgeleitet wird und den Prozess der Vektorähnlichkeitssuche erheblich beschleunigen kann. Milvus unterstützt eine breite Palette von Indextypen sowohl für Vektorfelder als auch für skalare Felder. Weitere Informationen finden Sie unter Vektorindex-Typen.

Kafka-Milvus-Konnektor

Kafka-Milvus Connector bezieht sich auf einen Kafka-Sink-Connector für Milvus. Mit ihm können Sie Vektordaten von Kafka zu Milvus streamen.

Knowhere

Knowhere ist die zentrale Vektorausführungsmaschine von Milvus, die mehrere Bibliotheken für die Suche nach Vektorähnlichkeit enthält, darunter Faiss, Hnswlib und Annoy. Knowhere ist auch für die Unterstützung von heterogenem Computing ausgelegt. Es steuert, auf welcher Hardware (CPU oder GPU) die Indexerstellung und Suchanfragen ausgeführt werden sollen. Daher kommt auch der Name Knowhere - Knowhere weiß, wo die Operationen ausgeführt werden sollen.

Log-Broker

Der Log-Broker ist ein Publish-Subscribe-System, das Playback unterstützt. Er ist verantwortlich für die Persistenz von Streaming-Daten, die Ausführung zuverlässiger asynchroner Abfragen, die Benachrichtigung über Ereignisse und die Rückgabe von Abfrageergebnissen. Er gewährleistet auch die Integrität der inkrementellen Daten, wenn sich die Arbeitsknoten von einem Systemausfall erholen.

Log-Snapshot

Ein Log-Snapshot ist ein binäres Protokoll, eine kleinere Einheit in einem Segment, das die Aktualisierungen und Änderungen von Daten in Milvus aufzeichnet und verarbeitet. Die Daten eines Segments werden in mehreren binlogs gespeichert. Es gibt drei Arten von Binlogs in Milvus: InsertBinlog, DeleteBinlog und DDLBinlog. Weitere Informationen finden Sie unter Metaspeicher.

Log-Abonnent

Log Subscriber abonnieren die Log-Sequenz, um die lokalen Daten zu aktualisieren und Dienste in Form von Nur-Lese-Kopien bereitzustellen.

Meldungsspeicher

Der Nachrichtenspeicher ist die Protokollspeicher-Engine von Milvus. Milvus unterstützt Kafka oder Pulsa als Nachrichtenspeicher. Weitere Informationen finden Sie unter Konfigurieren des Nachrichtenspeichers.

Metrik-Typ

Ähnlichkeitsmetriken werden verwendet, um Ähnlichkeiten zwischen Vektoren zu messen. Derzeit unterstützt Milvus den euklidischen Abstand (L2), das innere Produkt (IP), die Cosinus-Ähnlichkeit (COSINE) und binäre metrische Typen. Sie können den für Ihr Szenario am besten geeigneten metrischen Typ wählen. Weitere Informationen finden Sie unter Ähnlichkeitsmetriken.

Mmap

Memory-mapped-Dateien ermöglichen eine effiziente Datenverarbeitung, indem sie den Dateiinhalt direkt im Speicher abbilden. Dies ist besonders nützlich, wenn der Speicherplatz begrenzt und das Laden aller Daten nicht möglich ist. Diese Technik kann die Datenkapazität erhöhen und die Leistung bis zu einem gewissen Grad aufrechterhalten. Wenn die Daten jedoch die Speicherkapazität bei weitem überschreiten, können die Such- und Abfragegeschwindigkeiten erheblich sinken. Weitere Informationen finden Sie unter MMap-aktivierte Datenspeicherung.

Milvus-Sicherung

Milvus Backup ist ein Tool zur Erstellung von Datenkopien, die nach einem Datenverlust zur Wiederherstellung des Originals verwendet werden können.

Milvus CDC

Milvus CDC (Change data capture) ist ein benutzerfreundliches Tool, das inkrementelle Daten in Milvus-Instanzen erfassen und synchronisieren kann. Es stellt die Zuverlässigkeit von Geschäftsdaten sicher, indem es sie nahtlos zwischen Quell- und Zielinstanzen überträgt und so eine einfache inkrementelle Sicherung und Disaster Recovery ermöglicht.

Milvus CLI

Milvus Command-Line Interface (CLI) ist ein Befehlszeilen-Tool, das Datenbankverbindungen, Datenoperationen sowie den Import und Export von Daten unterstützt. Es basiert auf dem Milvus Python SDK und ermöglicht die Ausführung von Befehlen über ein Terminal unter Verwendung interaktiver Befehlszeilen-Eingabeaufforderungen.

Milvus-Migration

Milvus Migration ist ein Open-Source-Tool, das die einfache Migration von Daten aus verschiedenen Datenquellen in Milvus 2.x ermöglicht.

Milvus-Cluster

Beim Cluster-Einsatz von Milvus werden die Dienste von einer Gruppe von Knoten bereitgestellt, um eine hohe Verfügbarkeit und einfache Skalierbarkeit zu erreichen.

Milvus Einzelplatz

Bei der Standalone-Implementierung von Milvus werden alle Vorgänge, einschließlich Dateneinfügung, Indexerstellung und Vektorähnlichkeitssuche, in einem einzigen Prozess abgeschlossen.

Mehrere Vektoren

Milvus unterstützt seit Version 2.4.0 mehrere Vektorfelder in einer Sammlung. Weitere Informationen finden Sie unter Hybride Suche.

Partitionierung

Eine Partition ist eine Unterteilung einer Sammlung. Milvus unterstützt die Unterteilung von Sammlungsdaten in mehrere Teile auf dem physischen Speicher. Dieser Prozess wird als Partitionierung bezeichnet, und jede Partition kann mehrere Segmente enthalten. Weitere Informationen finden Sie unter Verwalten von Partitionen.

Partitionsschlüssel

Das Attribut "Partitionsschlüssel" eines Feldes ermöglicht die Unterteilung von Entitäten in verschiedene Partitionen auf der Grundlage ihrer Partitionsschlüsselwerte. Diese Gruppierung stellt sicher, dass Entitäten, die denselben Schlüsselwert haben, zusammen gespeichert werden, was Suchvorgänge beschleunigen kann, indem das System irrelevante Partitionen bei Abfragen, die nach dem Partitionsschlüsselfeld gefiltert werden, umgehen kann. Weitere Informationen finden Sie unter Partitionsschlüssel verwenden.

PChannel

PChannel steht für physischer Kanal. Jeder PChannel entspricht einem Thema für die Protokollspeicherung. Standardmäßig wird eine Gruppe von 16 PChannels zugewiesen, um Protokolle zu speichern, die das Einfügen, Löschen und Aktualisieren von Daten aufzeichnen, wenn der Milvus-Cluster gestartet wird. Weitere Informationen finden Sie unter Konfigurationen für Nachrichtenkanäle.

PyMilvus

PyMilvus ist ein Python-SDK von Milvus. Sein Quellcode ist Open Source und wird auf GitHub gehostet. Sie haben die Möglichkeit, MilvusClient (neue Version des Python-SDKs) oder das ursprüngliche ORM-Modul zu wählen, um mit Milvus zu kommunizieren.

Abfrage

Query ist eine API, die eine skalare Filterung mit einem angegebenen booleschen Ausdruck als Filter durchführt. Weitere Informationen finden Sie unter Get & Scalar Query.

Die Bereichssuche ermöglicht es Ihnen, Vektoren zu finden, die innerhalb eines bestimmten Abstands zu Ihrem Suchvektor liegen. Weitere Informationen finden Sie unter Bereichssuche.

Schema

Das Schema ist die Metainformation, die den Datentyp und die Dateneigenschaften definiert. Jede Sammlung hat ihr eigenes Sammlungsschema, das alle Felder einer Sammlung, die automatische ID (Primärschlüssel), die Zuweisungsaktivierung und die Sammlungsbeschreibung definiert. Feldschemata sind ebenfalls in Sammlungsschemata enthalten, die den Namen, den Datentyp und andere Eigenschaften eines Felds definieren. Weitere Informationen finden Sie unter Schema verwalten.

DieSuche ist eine API, die eine Operation zur Durchführung einer Vektorähnlichkeitssuche durchführt, für deren Ausführung Vektordaten erforderlich sind. Weitere Informationen finden Sie unter Einzelvektorsuche.

Segment

Ein Segment ist eine automatisch erstellte Datendatei, die eingefügte Daten speichert. Eine Sammlung kann mehrere Segmente enthalten, und jedes Segment kann zahlreiche Entitäten enthalten. Während einer Vektorähnlichkeitssuche untersucht Milvus jedes Segment, um die Suchergebnisse zusammenzustellen.

Es gibt zwei Arten von Segmenten: wachsende und versiegelte. Ein wachsendes Segment sammelt so lange neue Daten, bis es einen bestimmten Schwellenwert oder ein Zeitlimit erreicht hat und dann versiegelt wird. Danach wird es versiegelt. Sobald ein Segment versiegelt ist, nimmt es keine neuen Daten mehr an und wird in den Objektspeicher übertragen. In der Zwischenzeit werden die eingehenden Daten an ein neues wachsendes Segment weitergeleitet. Der Übergang von einem wachsenden zu einem versiegelten Segment wird entweder durch Erreichen der vordefinierten Entitätsgrenze oder durch Überschreiten der maximal zulässigen Dauer im wachsenden Zustand ausgelöst. Weitere Informationen finden Sie unter Design Details.

Spark-Milvus-Konnektor

Spark-Milvus Connector bietet eine nahtlose Integration zwischen Apache Spark und Milvus und kombiniert die Datenverarbeitungs- und ML-Funktionen von Apache Spark mit der Vektordatenspeicherung und den Suchfunktionen von Milvus.

Shard

Milvus verbessert die Leistung beim Schreiben von Daten durch die Verteilung von Schreibvorgängen auf mehrere Knoten unter Verwendung von Shards, die basierend auf dem Hashing von Primärschlüsseln organisiert sind. Auf diese Weise werden die parallelen Datenverarbeitungsfähigkeiten des Clusters genutzt.

Bei der Partitionierung wird die Leselast durch die Angabe eines Partitionsnamens reduziert, während die Schreiblast durch Sharding auf mehrere Server verteilt wird.

Sparse-Vektor

Sparsame Vektoren stellen Wörter oder Phrasen mithilfe von Vektoreinbettungen dar, bei denen die meisten Elemente Null sind und nur ein Element, das nicht Null ist, das Vorhandensein eines bestimmten Wortes anzeigt. Modelle mit spärlichen Vektoren, wie SPLADEv2, übertreffen Modelle mit dichten Vektoren bei der Suche nach Wissen außerhalb der Domäne, der Kenntnis von Schlüsselwörtern und der Interpretierbarkeit. Weitere Informationen finden Sie unter Sparse Vectors.

Unstrukturierte Daten

Unstrukturierte Daten, einschließlich Bilder, Video, Audio und natürliche Sprache, sind Informationen, die keinem vordefinierten Modell oder einer Organisationsform folgen. Dieser Datentyp macht etwa 80 % der weltweiten Daten aus und kann mit verschiedenen Modellen der künstlichen Intelligenz (KI) und ML in Vektoren umgewandelt werden.

VKanal

VChannel steht für logischer Kanal. Jeder VChannel stellt einen Splitter in einer Sammlung dar. Jeder Sammlung wird eine Gruppe von VChannels zugewiesen, um das Einfügen, Löschen und Aktualisieren von Daten aufzuzeichnen. VChannels sind logisch getrennt, teilen sich aber physisch Ressourcen.

Vektor

Ein Einbettungsvektor ist eine Merkmalsabstraktion von unstrukturierten Daten wie E-Mails, IoT-Sensordaten, Instagram-Fotos, Proteinstrukturen und mehr. Mathematisch gesehen ist ein Einbettungsvektor ein Array aus Gleitkommazahlen oder Binärwerten. Moderne Einbettungstechniken werden verwendet, um unstrukturierte Daten in Einbettungsvektoren umzuwandeln. Milvus unterstützt seit Version 2.4.0 sowohl dichte als auch spärliche Vektoren.

Zilliz-Wolke

Vollständig verwaltetes Milvus auf Zilliz Cloud, mit mehr Unternehmensfunktionen und hoch optimierter Leistung.