Begriffe

AutoID

AutoID ist ein Attribut des Primärfelds, das festlegt, ob die automatische Inkrementierung 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 wählt anhand empirischer Daten automatisch den am besten geeigneten Indextyp und die optimalen Parameter für ein bestimmtes Feld aus. Dies ist ideal für Situationen, in denen Sie die spezifischen Indexparameter nicht selbst steuern 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 Systemverwaltung erheblich reduziert.

Birdwatcher

Birdwatcher ist ein Debugging-Tool für Milvus, das eine Verbindung zu etcd herstellt und es Ihnen ermöglicht, den Status des Milvus-Servers zu überwachen und Anpassungen in Echtzeit vorzunehmen. Es unterstützt zudem etcd-Dateisicherungen und unterstützt Entwickler so bei der Fehlerbehebung.

Bulk Writer

Bulk Writer ist ein Datenverarbeitungs-Tool, 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 einen effizienten Import zu ermöglichen.

Bulk Insert

Bulk Insert ist eine API, die die Schreibleistung verbessert, indem sie den Import mehrerer Dateien in einer einzigen Anfrage ermöglicht und so die Verarbeitung großer Datensätze optimiert.

Cardinal

Cardinal, entwickelt von Zilliz Cloud, ist ein hochmoderner Vektorsuchalgorithmus, der eine beispiellose Suchqualität und -leistung bietet. Dank seines innovativen Designs und umfangreicher Optimierungen übertrifft Cardinal Knowhere um ein Vielfaches bis hin zu einer Größenordnung und bewältigt dabei adaptiv vielfältige Produktionsszenarien wie variierende K-Größen, hohe Filterung, unterschiedliche Datenverteilungen und so weiter.

Channel

Milvus nutzt im Rahmen seiner Streaming-Service-Architektur zwei Arten von Kanälen: PChannel und VChannel. Jeder PChannel entspricht einem von Woodpecker verwalteten WAL-Stream, während jeder VChannel einem Shard in einer Sammlung entspricht. Der Streaming-Service verwaltet diese Kanäle, um Datenkonsistenz und Fehlerbehebung zu gewährleisten.

Sammlung

In Milvus entspricht eine Sammlung 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 „Sammlungen verwalten“.

Abhängigkeit

Eine Abhängigkeit ist ein Programm, auf das ein anderes Programm angewiesen ist, um zu funktionieren. Zu den Abhängigkeiten von Milvus gehören etcd (speichert Metadaten), MinIO oder S3 (Objektspeicher) sowie eine Nachrichtenwarteschlange wie Woodpecker (verwaltet Snapshot-Protokolle). Weitere Informationen finden Sie unter „Dateninfrastruktur“.

Dynamisches Schema

Ein dynamisches Schema ermöglicht es Ihnen, Entitäten mit neuen Feldern in eine Sammlung einzufügen, ohne das bestehende Schema zu ändern. Das bedeutet, dass Sie Daten einfügen können, ohne das vollständige Schema einer Sammlung zu kennen, und Felder einbeziehen können, die noch nicht definiert sind. Sie können diese schemalose Funktion aktivieren, indem Sie beim Erstellen einer Sammlung das dynamische Feld aktivieren. Weitere Informationen finden Sie unter „Dynamisches Feld aktivieren“.

Embeddings

Milvus bietet integrierte Embedding-Funktionen, die mit gängigen Embedding-Anbietern zusammenarbeiten. Bevor Sie eine Sammlung in Milvus erstellen, können Sie diese Funktionen nutzen, um Embeddings für Ihre Datensätze zu generieren, wodurch der Prozess der Datenaufbereitung und der Vektorsuche optimiert wird. Um Embeddings in der Praxis zu erstellen, lesen Sie den Abschnitt „Verwendung des PyMilvus-Modells zur Generierung von Text-Embeddings“.

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 repräsentiert.

Sie können Primärschlüssel anpassen. Wenn Sie keine manuelle Konfiguration vornehmen, weist Milvus den Entitäten automatisch einen Primärschlüssel zu. Wenn Sie sich dafür entscheiden, den Primärschlüssel anzupassen, beachten Sie bitte, dass Milvus derzeit keine Duplikatsprüfung für Primärschlüssel unterstützt. Daher kann es in derselben Sammlung zu doppelten Primärschlüsseln kommen. Weitere Informationen finden Sie unter „Entitäten einfügen“.

Feld

Ein Feld in einer Milvus-Sammlung entspricht einer Spalte einer Tabelle in einem RDBMS. Felder können entweder Skalarfelder für strukturierte Daten (z. B. Zahlen, Zeichenfolgen) oder Vektorfelder für Einbettungsvektoren sein.

Filter

Milvus unterstützt die skalare Filterung durch die Suche mit Prädikaten, sodass Sie Filterbedingungen in Abfragen und Suchvorgängen definieren können, um die Ergebnisse einzugrenzen.

Bei der gefilterten Suche werden skalare Filter auf Vektorsuchen angewendet, sodass Sie die Suchergebnisse anhand spezifischer Kriterien verfeinern können. Weitere Informationen finden Sie unter „Gefilterte Suche“.

Die hybride Suche ist seit Milvus 2.4.0 eine API für die hybride Suche. Sie können mehrere Vektorfelder durchsuchen und diese miteinander kombinieren. Bei einer Vektorsuche in Kombination mit einer skalaren Feldfilterung spricht man von einer „gefilterten Suche“. Weitere Informationen finden Sie unter „Hybride Suche“.

Index

Ein Vektorindex ist eine aus Rohdaten abgeleitete, neu organisierte Datenstruktur, die den Prozess der Vektorähnlichkeitssuche erheblich beschleunigen kann. Milvus unterstützt eine Vielzahl von Indextypen sowohl für Vektorfelder als auch für Skalarfelder. Weitere Informationen finden Sie unter „Vektorindex-Typen“.

Kafka-Milvus-Konnektor

Der Kafka-Milvus-Konnektor bezeichnet einen Kafka-Sink-Konnektor für Milvus. Er ermöglicht es Ihnen, Vektordaten von Kafka an Milvus zu streamen.

Knowhere

Knowhere ist die zentrale Vektor-Ausführungs-Engine von Milvus, die mehrere Bibliotheken für die Vektorähnlichkeitssuche integriert, darunter Faiss, Hnswlib und Annoy. Knowhere ist zudem für heterogenes Computing ausgelegt. Es steuert, auf welcher Hardware (CPU oder GPU) die Indizierung und Suchanfragen ausgeführt werden. Daher hat Knowhere seinen Namen erhalten – es weiß, wo die Operationen ausgeführt werden müssen.

Log-Snapshot

Ein Log-Snapshot ist ein Binärprotokoll, eine kleinere Einheit innerhalb eines Segments, die die an den Daten in Milvus vorgenommenen Aktualisierungen und Änderungen aufzeichnet und verarbeitet. Daten aus einem Segment werden in mehreren Binärprotokollen gespeichert. In Milvus gibt es drei Arten von Binärprotokollen: InsertBinlog, DeleteBinlog und DDLBinlog. Weitere Informationen finden Sie unter „Meta-Speicher“.

Metriktyp

Ähnlichkeitsmetriktypen werden verwendet, um Ähnlichkeiten zwischen Vektoren zu messen. Derzeit unterstützt Milvus den euklidischen Abstand (L2), das Skalarprodukt (IP), die Kosinusähnlichkeit (COSINE) sowie binäre Metriktypen. Sie können den für Ihr Szenario am besten geeigneten Metriktyp auswählen. Weitere Informationen finden Sie unter Ähnlichkeitsmetriken.

MemoryBuffer

MemoryBuffer ist ein ressourcenschonender Bereitstellungsmodus von Woodpecker, der eingehende Schreibvorgänge vorübergehend im Arbeitsspeicher puffert und sie in regelmäßigen Abständen in den Cloud-Objektspeicher überträgt. Dieser Modus eignet sich am besten für Workloads mit hohem Batch-Anteil in kleineren Bereitstellungen oder Produktionsumgebungen, in denen Einfachheit Vorrang vor Leistung hat. Weitere Informationen finden Sie unter „Woodpecker-Architektur“.

Mmap

Memory-Mapped-Dateien ermöglichen eine effiziente Datenverarbeitung, indem der Dateiinhalt direkt in den Arbeitsspeicher abgebildet wird. Dies ist besonders nützlich, wenn der Arbeitsspeicher begrenzt ist und nicht alle Daten geladen werden können. Diese Technik kann die Datenkapazität erhöhen und die Leistung bis zu einem gewissen Grad aufrechterhalten. Wenn die Datenmenge die Arbeitsspeicherkapazität jedoch deutlich überschreitet, können sich die Such- und Abfragegeschwindigkeiten erheblich verringern. Weitere Informationen finden Sie unter „MMap-fähige Datenspeicherung“.

Milvus Backup

Milvus Backup ist ein Tool zum Erstellen von Datenkopien, mit denen nach einem Datenverlust der ursprüngliche Zustand wiederhergestellt werden kann.

Milvus CDC

Milvus CDC (Change Data Capture) ist ein Tool, mit dem Datenänderungen von einem Milvus-Cluster auf einen anderen repliziert werden, um eine Disaster Recovery im Primär-Standby-Modus zu ermöglichen.

Milvus-CLI

Die Milvus-Befehlszeilenschnittstelle (CLI) ist ein Befehlszeilentool, das Datenbankverbindungen, Datenoperationen sowie den Import und Export von Daten unterstützt. Basierend auf dem Milvus Python SDK ermöglicht sie die Ausführung von Befehlen über ein Terminal mithilfe interaktiver Befehlszeilenaufforderungen.

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

Bei der Cluster-Bereitstellung von Milvus werden Dienste von einer Gruppe von Knoten bereitgestellt, um hohe Verfügbarkeit und einfache Skalierbarkeit zu gewährleisten.

Milvus Standalone

Bei der Standalone-Bereitstellung von Milvus werden alle Vorgänge – einschließlich Dateneingabe, Indexerstellung und Vektorähnlichkeitssuche – in einem einzigen Prozess ausgeführt.

Multi-Vektor

Seit Version 2.4.0 unterstützt Milvus mehrere Vektorfelder in einer Sammlung. Weitere Informationen finden Sie unter „Hybrid Search“.

Partition

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

Partitionsschlüssel

Das Partitionsschlüssel-Attribut eines Feldes ermöglicht die Aufteilung von Entitäten in verschiedene Partitionen auf der Grundlage ihrer Partitionsschlüsselwerte. Diese Gruppierung stellt sicher, dass Entitäten mit demselben Schlüsselwert zusammen gespeichert werden. Dies kann Suchvorgänge beschleunigen, da das System bei Abfragen, die nach dem Partitionsschlüsselfeld gefiltert werden, irrelevante Partitionen überspringen kann. Weitere Informationen finden Sie unter „Partitionsschlüssel verwenden“.

PChannel

PChannel steht für „Physical Channel“. Jeder PChannel entspricht einem von Woodpecker verwalteten WAL-Stream. Standardmäßig wird beim Start des Milvus-Clusters eine Gruppe von PChannels zugewiesen, um Protokolle zu speichern, die das Einfügen, Löschen und Aktualisieren von Daten aufzeichnen. Weitere Informationen finden Sie unter „Streaming-Dienst“.

PyMilvus

PyMilvus ist ein Python-SDK für Milvus. Der Quellcode ist als Open Source auf GitHub verfügbar. Sie können flexibel zwischen MilvusClient (neue Version des Python-SDK) und dem ursprünglichen ORM-Modul wählen, um mit Milvus zu kommunizieren.

Abfrage

„Query“ ist eine API, die eine skalare Filterung anhand eines angegebenen booleschen Ausdrucks als Filter durchführt. Weitere Informationen finden Sie unter „Get & Scalar Query“.

QuorumBuffer

QuorumBuffer ist ein Bereitstellungsmodus von Woodpecker, der für latenzempfindliche, hochfrequente Lese-/Schreib-Workloads konzipiert ist, die sowohl Echtzeit-Reaktionsfähigkeit als auch hohe Fehlertoleranz erfordern. Er fungiert als Hochgeschwindigkeits-Schreibpuffer mit Quorum-Schreibvorgängen mit drei Replikaten und gewährleistet so starke Konsistenz und hohe Verfügbarkeit. Weitere Informationen finden Sie unter „Woodpecker-Architektur“.

Mit der Bereichssuche können Sie Vektoren finden, die innerhalb einer bestimmten Entfernung zu Ihrem Suchvektor liegen. Weitere Informationen finden Sie unter „Bereichssuche“.

Schema

Das Schema umfasst die Metainformationen, die den Datentyp und die Dateneigenschaften definieren. Jede Sammlung verfügt über ein eigenes Sammlungsschema, das alle Felder einer Sammlung, die Aktivierung der automatischen ID-Zuweisung (Primärschlüssel) sowie die Beschreibung der Sammlung definiert. In den Sammlungsschemata sind auch Feldschemata enthalten, die den Namen, den Datentyp und weitere Eigenschaften eines Feldes festlegen. Weitere Informationen finden Sie unter „Schema verwalten“.

„Suche“ ist eine API, die eine Vektorähnlichkeitssuche durchführt und für deren Ausführung Vektordaten benötigt. Weitere Informationen finden Sie unter „Einzelvektor-Suche“.

Segment

Ein Segment ist eine automatisch erstellte Datendatei, in der eingefügte Daten gespeichert werden. Eine Sammlung kann mehrere Segmente enthalten, und jedes Segment kann zahlreiche Entitäten umfassen. Während einer Vektorähnlichkeitssuche untersucht Milvus jedes Segment, um 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; danach wird es versiegelt. Sobald ein Segment versiegelt ist, nimmt es keine neuen Daten mehr auf und wird in den Objektspeicher übertragen. In der Zwischenzeit werden eingehende Daten an ein neues wachsendes Segment weitergeleitet. Der Übergang von einem wachsenden zu einem versiegelten Segment wird entweder durch das Erreichen des vordefinierten Entitätslimits oder durch das Überschreiten der maximal zulässigen Dauer im wachsenden Zustand ausgelöst. Weitere Informationen finden Sie unter „Design-Details“.

Spark-Milvus-Konnektor

Der Spark-Milvus-Konnektor ermöglicht eine nahtlose Integration zwischen Apache Spark und Milvus und kombiniert die Datenverarbeitungs- und Machine-Learning-Funktionen (ML) von Apache Spark mit den Vektordatenspeicher- und Suchfunktionen von Milvus.

Shard

Milvus verbessert die Leistung beim Schreiben von Daten, indem Schreibvorgänge mithilfe von Shards auf mehrere Knoten verteilt werden, die auf der Grundlage des Hashwerts der Primärschlüssel organisiert sind. Dadurch werden die parallelen Rechenkapazitäten des Clusters genutzt.

Die Partitionierung dient dazu, die Leseauslastung durch die Angabe eines Partitionsnamens zu reduzieren, während das Sharding die Schreibauslastung auf mehrere Server verteilt.

Spärlicher Vektor

Spärliche Vektoren stellen Wörter oder Phrasen mithilfe von Vektor-Embeddings dar, bei denen die meisten Elemente Null sind und nur ein Element ungleich Null das Vorhandensein eines bestimmten Wortes anzeigt. Spärliche Vektormodelle wie SPLADEv2 übertreffen dichte Modelle bei der domänenübergreifenden Wissenssuche, der Berücksichtigung von Schlüsselwörtern und der Interpretierbarkeit. Weitere Informationen finden Sie unter „Sparse Vectors“.

Streaming-Dienst

Der Streaming-Dienst ist ein Konzept für ein internes Streaming-Systemmodul von Milvus, das auf dem Write-Ahead-Log (WAL) basiert und verschiedene Streaming-bezogene Funktionen unterstützt. Dazu gehören die Erfassung und das Abonnieren von Streaming-Daten, die Fehlerbehebung beim Cluster-Status, die Umwandlung von Streaming-Daten in historische Daten sowie Abfragen zu wachsenden Datenmengen. Der Dienst besteht aus den Komponenten „Streaming-Koordinator“, „Streaming-Knoten-Cluster“ und „Streaming-Client“. Weitere Informationen finden Sie unter „Streaming-Dienst“.

Unstrukturierte Daten

Unstrukturierte Daten, darunter Bilder, Videos, Audiodateien und natürliche Sprache, sind Informationen, die keinem vordefinierten Modell oder einer festgelegten Organisationsstruktur folgen. Dieser Datentyp macht etwa 80 % der weltweiten Daten aus und kann mithilfe verschiedener Modelle der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) in Vektoren umgewandelt werden.

VChannel

VChannel steht für „Virtual Channel“. Jeder VChannel repräsentiert einen Shard in einer Sammlung. Jeder Sammlung wird eine Gruppe von VChannels zugewiesen, um das Einfügen, Löschen und Aktualisieren von Daten zu protokollieren. VChannels sind logisch voneinander getrennt, teilen sich jedoch physisch Ressourcen über den Streaming-Dienst. Weitere Informationen finden Sie unter „Streaming-Dienst“.

Vektor

Ein Einbettungsvektor ist eine Merkmalsabstraktion unstrukturierter Daten, wie beispielsweise E-Mails, IoT-Sensordaten, Instagram-Fotos, Proteinstrukturen und vieles mehr. Mathematisch gesehen ist ein Einbettungsvektor ein Array aus Gleitkommazahlen oder Binärwerten. Zur Umwandlung unstrukturierter Daten in Einbettungsvektoren kommen moderne Einbettungsverfahren zum Einsatz. Milvus unterstützt seit Version 2.4.0 sowohl dichte als auch spärliche Vektoren.

WAL-Speicher

Der Write-Ahead-Log-Speicher (WAL) bildet die Grundlage für die Datenbeständigkeit und -konsistenz in verteilten Systemen. Bevor eine Änderung festgeschrieben wird, wird sie zunächst in einem Protokoll aufgezeichnet – so wird sichergestellt, dass Sie im Falle eines Ausfalls genau an der Stelle weitermachen können, an der Sie aufgehört haben. Milvus verwendet Woodpecker als WAL-Speichersystem, das sowohl den MemoryBuffer- als auch den QuorumBuffer-Modus unterstützt. Weitere Informationen finden Sie unter „Woodpecker-Architektur“.

Woodpecker

Woodpecker ist ein cloud-natives WAL-System in Milvus 2.6, das Kafka und Pulsar ersetzt. Mit einer Zero-Disk-Architektur und zwei Bereitstellungsmodi (MemoryBuffer und QuorumBuffer) bietet es hohen Durchsatz, geringen Betriebsaufwand und nahtlose Skalierbarkeit auf Objektspeichern. Weitere Informationen finden Sie unter „Woodpecker-Architektur“.

Zilliz Cloud

Vollständig verwaltetes Milvus auf der Zilliz Cloud mit zusätzlichen Unternehmensfunktionen und hochoptimierter Leistung.