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.
Gefilterte Suche
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“.
Hybride 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“.
Bereichssuche
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
„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.