Überblick über die Milvus-Bereitstellungsoptionen
Milvus ist eine hochleistungsfähige, skalierbare Vektordatenbank. Sie unterstützt Anwendungsfälle unterschiedlichster Größe, von Demos, die lokal in Jupyter Notebooks ausgeführt werden, bis hin zu Kubernetes-Clustern, die mehrere Milliarden Vektoren verarbeiten. Derzeit gibt es drei Milvus-Bereitstellungsoptionen: Milvus Lite, Milvus Standalone und Milvus Distributed.
Milvus Lite
Milvus Lite ist eine Python-Bibliothek, die in Ihre Anwendungen importiert werden kann. Als leichtgewichtige Version von Milvus ist sie ideal für schnelles Prototyping in Jupyter Notebooks oder für die Ausführung auf Smart Devices mit begrenzten Ressourcen. Milvus Lite unterstützt die gleichen APIs wie andere Milvus-Implementierungen. Der clientseitige Code, der mit Milvus Lite interagiert, kann auch mit Milvus-Instanzen in anderen Bereitstellungsmodi arbeiten.
Um Milvus Lite in Ihre Anwendungen zu integrieren, führen Sie pip install pymilvus
aus, um es zu installieren, und verwenden Sie die Anweisung MilvusClient("./demo.db")
, um eine Vektordatenbank mit einer lokalen Datei zu instanziieren, in der alle Ihre Daten gespeichert sind. Weitere Einzelheiten finden Sie unter Ausführen von Milvus Lite.
Milvus Standalone
Milvus Standalone ist ein Servereinsatz auf einer einzigen Maschine. Alle Komponenten von Milvus Standalone sind in ein einziges Docker-Image gepackt, was die Bereitstellung erleichtert. Wenn Sie eine produktive Arbeitslast haben, aber nicht Kubernetes verwenden möchten, ist die Ausführung von Milvus Standalone auf einem einzelnen Rechner mit ausreichend Speicher eine gute Option. Außerdem unterstützt Milvus Standalone hohe Verfügbarkeit durch Master-Slave-Replikation.
Milvus Verteilt
Milvus Distributed kann auf Kubernetes-Clustern bereitgestellt werden. Diese Bereitstellung zeichnet sich durch eine Cloud-native Architektur aus, bei der die Ingestion-Last und die Suchanfragen separat von isolierten Knoten verarbeitet werden, was Redundanz für kritische Komponenten ermöglicht. Sie bietet höchste Skalierbarkeit und Verfügbarkeit sowie die Flexibilität, die zugewiesenen Ressourcen in jeder Komponente anzupassen. Milvus Distributed ist die erste Wahl für Unternehmensanwender, die große Vektorsuchsysteme in der Produktion betreiben.
Wählen Sie die richtige Bereitstellung für Ihren Anwendungsfall
Die Wahl des Bereitstellungsmodus hängt in der Regel von der Entwicklungsphase Ihrer Anwendung ab:
Für schnelles Prototyping
Wenn Sie schnell etwas als Prototyp oder zu Lernzwecken erstellen möchten, wie z. B. Retrieval Augmented Generation (RAG)-Demos, KI-Chatbots, multimodale Suche, ist Milvus Lite selbst oder eine Kombination aus Milvus Lite und Milvus Standalone geeignet. Sie können Milvus Lite in Notebooks für Rapid Prototyping verwenden und verschiedene Ansätze wie z. B. verschiedene Chunking-Strategien in RAG erkunden. Möglicherweise möchten Sie die mit Milvus Lite erstellte Anwendung in einem kleinen Produktionsmaßstab einsetzen, um echte Benutzer zu bedienen oder die Idee an größeren Datensätzen zu validieren, z. B. an mehr als ein paar Millionen Vektoren. Milvus Standalone ist dafür geeignet. Die Anwendungslogik für Milvus Lite kann weiterhin gemeinsam genutzt werden, da alle Milvus-Implementierungen dieselbe clientseitige API haben. Die in Milvus Lite gespeicherten Daten können auch mit einem Befehlszeilentool auf Milvus Standalone portiert werden.
Produktionseinsatz in kleinem Maßstab
Für die frühe Produktionsphase, wenn das Projekt noch auf der Suche nach der Anpassung an den Produktmarkt ist und Agilität wichtiger ist als Skalierbarkeit, ist Milvus Standalone die beste Wahl. Es kann bei ausreichenden Maschinenressourcen bis zu 100 Mio. Vektoren skalieren und erfordert dabei viel weniger DevOps als die Wartung eines K8s-Clusters.
Groß angelegte Produktionsimplementierung
Wenn Ihr Unternehmen schnell wächst und die Datenmenge die Kapazität eines einzelnen Servers übersteigt, ist es an der Zeit, Milvus Distributed in Betracht zu ziehen. Sie können Milvus Standalone weiterhin für die Entwicklungs- oder Staging-Umgebung verwenden und den K8s-Cluster betreiben, auf dem Milvus Distributed läuft. Damit können Sie mehrere Milliarden Vektoren verwalten und die Knotengröße flexibel an Ihre Arbeitslast anpassen, z. B. an Fälle mit hohem Leseaufkommen und seltenen Schreibvorgängen oder mit hohem Schreibaufkommen und geringem Leseaufkommen.
Lokale Suche auf Edge-Geräten
Für die Suche in privaten oder sensiblen Daten auf Edge-Geräten können Sie Milvus Lite auf dem Gerät einsetzen, ohne auf einen Cloud-basierten Dienst für die Text- oder Bildsuche angewiesen zu sein. Dies eignet sich für Fälle wie die Suche in eigenen Dokumenten oder die Erkennung von Objekten auf dem Gerät.
Die Wahl des Milvus-Bereitstellungsmodus hängt von der Phase und dem Umfang Ihres Projekts ab. Milvus bietet eine flexible und leistungsstarke Lösung für verschiedene Anforderungen, vom schnellen Prototyping bis zum Einsatz in großen Unternehmen.
- Milvus Lite wird für kleinere Datensätze mit bis zu einigen Millionen Vektoren empfohlen.
- Milvus Standalone ist für mittelgroße Datensätze geeignet, die bis zu 100 Millionen Vektoren umfassen.
- Milvus Distributed ist für große Bereitstellungen konzipiert und kann Datensätze von 100 Millionen bis zu zehn Milliarden Vektoren verarbeiten.
Wählen Sie die Einsatzoption für Ihren Anwendungsfall
Vergleich der Funktionalitäten
Merkmal | Milvus Lite | Milvus Eigenständig | Milvus Verteilt |
---|---|---|---|
SDK/Klient-Lirary | Python gRPC | Python Go Java Node.js C# RESTful | Python Java Go Node.js C# RESTful |
Datentypen | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON | Dense Vector Sparse Vector Binary Vector Boolean Integer Floating Point VarChar Array JSON |
Suchmöglichkeiten | Vektorsuche (ANN-Suche) Metadatenfilterung Bereichssuche Skalarabfrage Entitäten nach Primärschlüssel abrufen Hybride Suche | Vektorsuche (ANN-Suche) Metadatenfilterung Bereichssuche Skalarabfrage Einträge nach Primärschlüssel abrufen Hybride Suche | Vektorsuche (ANN-Suche) Metadatenfilterung Bereichssuche Skalarabfrage Einträge nach Primärschlüssel abrufen Hybride Suche |
CRUD-Vorgänge | ✔️ | ✔️ | ✔️ |
Erweiterte Datenverwaltung | NICHT ZUTREFFEND | Zugriffskontrolle Partition Partitionsschlüssel | Zugriffskontrolle Partition Partitionsschlüssel Physische Ressourcengruppierung |
Konsistenz-Ebenen | Stark | Stark Bounded Staleness Session Eventual | Stark Begrenzte Staleness Sitzung Eventuell |