Elasticsearch vs. MyScale: Auswahl der richtigen Datenbank für GenAI-Anwendungen
Mit der Weiterentwicklung KI-gesteuerter Anwendungen kann die Bedeutung von Vektorsuchfunktionen zur Unterstützung dieser Fortschritte kaum überschätzt werden. Dieser Blogbeitrag behandelt zwei prominente Datenbanken mit Vektorsuchfunktionen: Elasticsearch und MyScale. Beide bieten robuste Funktionen für die Verarbeitung von Vektorsuche, einer wesentlichen Funktion für Anwendungen wie Empfehlungsmaschinen, Bildabruf und semantische Suche. Unser Ziel ist es, Entwicklern und Ingenieuren einen klaren Vergleich zu bieten, der bei der Entscheidung hilft, welche Datenbank am besten zu ihren spezifischen Anforderungen passt.
Was ist eine Vektordatenbank?
Bevor wir Elasticsearch vs MyScale vergleichen, wollen wir zunächst das Konzept von Vektordatenbanken untersuchen.
Eine Vektordatenbank ist speziell dafür konzipiert, hochdimensionale Vektoren zu speichern und abzufragen, bei denen es sich um numerische Darstellungen von unstrukturierten Daten handelt. Diese Vektoren kodieren komplexe Informationen, wie die semantische Bedeutung von Text, die visuellen Merkmale von Bildern oder Produktattribute. Durch die Ermöglichung effizienter Ähnlichkeitssuchen spielen Vektordatenbanken eine zentrale Rolle in KI-Anwendungen und ermöglichen eine fortschrittlichere Datenanalyse und -abfrage.
Häufige Anwendungsfälle für Vektordatenbanken umfassen Produktempfehlungen im E-Commerce, Plattformen zur Inhaltserkennung, Anomalieerkennung in der Cybersicherheit, medizinische Bildanalyse und Aufgaben der Verarbeitung natürlicher Sprache (NLP). Sie spielen auch eine entscheidende Rolle bei Retrieval Augmented Generation (RAG), einer Technik, die die Leistung von großen Sprachmodellen (LLMs) verbessert, indem sie externes Wissen bereitstellt, um Probleme wie KI-Halluzinationen zu reduzieren.
Es gibt viele Arten von Vektordatenbanken auf dem Markt, darunter:
- Speziell entwickelte Vektordatenbanken wie Milvus, Zilliz Cloud (vollständig verwaltetes Milvus)
- Vektorsuchbibliotheken wie Faiss und Annoy.
- Leichtgewichtige Vektordatenbanken wie Chroma und Milvus Lite.
- Traditionelle Datenbanken mit Vektorsuch-Add-ons, die in der Lage sind, Vektorsuchen in kleinem Maßstab durchzuführen.
Elasticsearch ist eine Suchmaschine auf Basis von Apache Lucene, und MyScale ist eine auf ClickHouse aufgebaute Datenbank, die Vektorsuche und SQL-Analysen kombiniert. Beide verfügen über Vektorsuchfunktionen als Add-on. Dieser Beitrag vergleicht ihre Vektorsuchfunktionen.
Elasticsearch: Überblick und Kerntechnologie
Elasticsearch ist eine Open-Source-Suchmaschine, die auf der Apache-Lucene-Bibliothek aufbaut. Sie ist bekannt für Echtzeit-Indizierung und Volltextsuche und daher eine bevorzugte Suche für anspruchsvolle Anwendungen und Log-Analysen. Elasticsearch ermöglicht es Ihnen, große Datenmengen schnell und effizient zu durchsuchen und zu analysieren.
Elasticsearch wurde für Suche und Analysen entwickelt, mit Funktionen wie Fuzzy-Suche, Phrasenabgleich und Relevanzranking. Es eignet sich hervorragend für Szenarien, in denen komplexe Suchabfragen und Datenabruf in Echtzeit erforderlich sind. Mit dem Aufstieg von KI-Anwendungen hat Elasticsearch Vektorsuchfunktionen hinzugefügt, sodass es Ähnlichkeitssuche und semantische Suche durchführen kann, was für KI-Anwendungsfälle wie Bilderkennung, Dokumentenabruf und generative KI erforderlich ist.
Vektorsuche
Die Vektorsuche ist über Apache Lucene in Elasticsearch integriert. Lucene organisiert Daten in unveränderlichen Segmenten, die regelmäßig zusammengeführt werden; Vektoren werden den Segmenten auf die gleiche Weise hinzugefügt wie andere Datenstrukturen. Der Prozess umfasst das Puffern von Vektoren im Arbeitsspeicher zur Indexierungszeit und anschließend bei Bedarf das Serialisieren dieser Puffer als Teil von Segmenten. Segmente werden regelmäßig zur Optimierung zusammengeführt, und Suchen kombinieren Vektortreffer über alle Segmente hinweg.
Für die Vektorindexierung verwendet Elasticsearch den HNSW-Algorithmus (Hierarchical Navigable Small World), der einen Graphen erstellt, in dem ähnliche Vektoren miteinander verbunden sind. Er wird aufgrund seiner Einfachheit, starken Benchmark-Leistung und Fähigkeit gewählt, inkrementelle Aktualisierungen zu verarbeiten, ohne ein vollständiges Neutrainieren des Index zu erfordern. Das System führt Vektorsuchen typischerweise in Dutzenden oder Hunderten von Millisekunden aus, deutlich schneller als Brute-Force-Ansätze.
Die technische Architektur von Elasticsearch ist eine seiner größten Stärken. Das System unterstützt sperrenfreie Suchen selbst während gleichzeitiger Indexierung und wahrt strikte Konsistenz über verschiedene Felder hinweg, wenn Dokumente aktualisiert werden. Wenn Sie also sowohl Vektor- als auch Keyword-Felder aktualisieren, sehen Suchen entweder alle alten Werte oder alle neuen Werte; Datenkonsistenz ist garantiert. Obwohl das System über den verfügbaren RAM hinaus skalieren kann, ist die Leistung optimal, wenn Vektordaten in den Arbeitsspeicher passen.
Über die Kernfunktionen der Vektorsuche hinaus bietet Elasticsearch praktische Integrationsfunktionen, die es äußerst wertvoll machen. Vektorsuchen können mit traditionellen Elasticsearch-Filtern kombiniert werden, sodass Sie eine hybride Suche durchführen können, die Vektorähnlichkeit mit Volltext-Suchergebnissen mischt. Die Vektorsuche ist vollständig kompatibel mit den Sicherheitsfunktionen, Aggregationen und der Indexsortierung von Elasticsearch, sodass sie eine vollständige Lösung für moderne Suchanwendungsfälle ist.
Was ist MyScale? Überblick und Kerntechnologie
MyScale ist eine cloudbasierte Datenbank, die auf der Open-Source-Datenbank ClickHouse aufbaut und für KI- und Machine-Learning-Workloads konzipiert ist. Sie kann strukturierte und Vektordaten sowie Echtzeitanalysen und Machine Learning verarbeiten. MyScale konzentriert sich auf Zeitreihen, Vektorsuche und Volltextsuche und eignet sich daher gut für Echtzeitverarbeitung und KI-gestützte Erkenntnisse. Durch die Verwendung der ClickHouse-Architektur ist MyScale leistungsstark und skalierbar für KI.
Eines der Hauptmerkmale von MyScale ist die native SQL-Unterstützung, die KI-gestützte Abfragen vereinfacht, indem sie Vektorsuche, Volltextsuche und traditionelle SQL-Abfragen in einem System integriert. Dies reduziert den Bedarf an mehreren Tools und macht es skalierbar für KI. MyScale unterstützt und verwaltet die analytische Verarbeitung sowohl strukturierter als auch vektorisierter Daten auf einer Plattform und verwendet dabei eine OLAP-Datenbankarchitektur, um mit vektorisierten Daten zu arbeiten. Entwickler können mit MyScale über SQL interagieren, sodass es für alle Programmierer zugänglich ist, die mit relationalen Datenbanken vertraut sind.
MyScale verfügt über mehrere Vektorindextypen und Ähnlichkeitsmetriken, um verschiedene Anwendungsfälle zu unterstützen. Es unterstützt gängige Distanzmetriken wie euklidische Distanz (L2), inneres Produkt (IP) und Kosinusähnlichkeit. Die Datenbank verfügt über mehrere Indexierungsalgorithmen: MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ und HNSW, jeweils mit einem eigenen Satz von Parametern zur Feinabstimmung. Die proprietäre MSTG-Vektor-Engine von MyScale nutzt NVMe-SSDs, um die Datendichte zu erhöhen, sodass sie spezialisierte Vektordatenbanken sowohl bei Leistung als auch bei Kosten übertrifft.
Durch die Kombination der Funktionalität einer SQL-Datenbank, einer Vektordatenbank und einer Volltextsuchmaschine in einem System reduziert MyScale Infrastruktur- und Wartungskosten. Diese Vereinheitlichung ermöglicht gemeinsame Datenabfragen und Analysen sowie eine einheitliche Datengrundlage für KI-Anwendungen. MyScale verfügt außerdem über MyScale Telemetry für vollständige Beobachtbarkeit von LLM-Systemen, sodass Sie effizient überwachen und debuggen können. Da Daten immer komplexer werden, ist MyScale eine zukunftssichere Lösung, die neuere Datenmodalitäten und Datenbankgrößen bewältigen kann und gleichzeitig Rechenleistung und Integration zwischen verschiedenen Datentypen beibehält.
Hauptunterschiede
Bei der Auswahl einer Vektorsuchlösung hilft es Ihnen, die wichtigsten Unterschiede zwischen Elasticsearch und MyScale zu kennen, um eine Entscheidung zu treffen. Schauen wir sie uns an:
Architektur und Grundlage
Elasticsearch basiert auf der Bibliothek Apache Lucene und ist auf Suche und Analysen ausgerichtet. Es speichert Vektoren als unveränderliche Segmente, die regelmäßig mithilfe des HNSW-Algorithmus für die Vektorindizierung zusammengeführt werden. Dadurch entsteht ein Graph, in dem ähnliche Vektoren verbunden sind, sodass Suchen in der Regel im Sub-Millisekundenbereich liegen.
MyScale verfolgt einen anderen Ansatz und basiert auf ClickHouse. Es verwendet eine OLAP-Architektur, die für KI- und Machine-Learning-Workloads entwickelt wurde. MyScale bietet mehrere Indizierungsoptionen, darunter MSTG, ScaNN, IVFFLAT, IVFPQ, IVFSQ und HNSW, sodass Sie mehr Flexibilität haben, den richtigen Algorithmus für Ihren Anwendungsfall auszuwählen.
Suche und Datenverwaltung
Elasticsearch ist gut darin, Vektorsuche mit traditioneller Suche zu kombinieren. Sie können Vektorähnlichkeitssuchen mit Volltextabfragen mischen, daher ist es stark für hybride Suchszenarien. Das System ist bei Aktualisierungen streng in Bezug auf Konsistenz – wenn Sie sowohl Vektor- als auch Keyword-Felder ändern, sehen Suchen entweder alle alten oder alle neuen Werte.
MyScale zeichnet sich durch native SQL-Unterstützung aus, sodass Sie Vektorsuche, Volltextsuche und SQL-Abfragen in einem System kombinieren können. Es verarbeitet sowohl strukturierte als auch Vektordaten mit seiner OLAP-Architektur, was möglicherweise dem entspricht, was Sie gewohnt sind, wenn Sie bereits mit SQL-Datenbanken arbeiten.
Performance und Speicherung
Elasticsearch erzielt die beste Performance, wenn Vektordaten in den Speicher passen, kann aber über den verfügbaren RAM hinaus skalieren. Seine lock-free Sucharchitektur ermöglicht gleichzeitige Indizierung, ohne Suchen zu blockieren.
MyScale verwendet mit seiner MSTG-Vektor-Engine einen einzigartigen Ansatz, der NVMe-SSDs nutzt, um die Datendichte zu erhöhen. Laut der Dokumentation bietet dies eine bessere Performance und Kosteneffizienz als spezialisierte Vektordatenbanken.
Integration und Monitoring
Elasticsearch verfügt über gute Integrationsfunktionen und funktioniert gut mit seinen Sicherheitsfunktionen, Aggregationen und Indexsortierung. Daher ist es für die meisten modernen Suchanwendungsfälle gut geeignet.
MyScale bietet MyScale Telemetry zur Überwachung von LLM-Systemen, sodass Sie Ihre Apps verfolgen und debuggen können. Es zielt darauf ab, die Infrastrukturkomplexität zu reduzieren, indem es SQL-Datenbank, Vektordatenbank und Volltextsuche in einem System kombiniert.
Wann welches verwendet werden sollte
Elasticsearch eignet sich hervorragend für hybride Suchszenarien, bei denen Sie Volltextsuche mit Vektorähnlichkeitssuche kombinieren müssen. Seine auf Apache Lucene basierende Architektur macht es perfekt für Anwendungen, die Echtzeitindizierung, strikte Datenkonsistenz und gleichzeitige Suche erfordern und dabei die Performance aufrechterhalten. Also, wenn Sie bereits im Elastic-Ökosystem sind oder eine Suchanwendung entwickeln, die semantische Suche und Keyword-Suche ausbalancieren muss.
MyScale eignet sich besser für Organisationen, die SQL-basierte Workflows haben und mehr Optionen für die Vektorindizierung benötigen. Seine ClickHouse- und OLAP-Architektur macht es perfekt für KI- und Machine-Learning-Workloads, die strukturierte Datenanalyse mit Vektoroperationen kombinieren. Seine Fähigkeit, NVMe-SSDs über seine MSTG-Vektor-Engine zu nutzen, sowie das integrierte Monitoring von LLM-Systemen machen es ideal für Teams, die KI-Anwendungen entwickeln, die kosteneffiziente Speicherung und Observability benötigen.
Fazit
Letztendlich hängt die Wahl zwischen Elasticsearch und MyScale von Ihren technischen Anforderungen und Ihrer bestehenden Infrastruktur ab. Elasticsearch bietet ausgereifte hybride Suchfunktionen und bewährte Skalierbarkeit mit strikten Konsistenzgarantien, sodass es hervorragend für suchintensive Anwendungen geeignet ist. MyScale bietet SQL-native Vektoroperationen mit mehreren Indizierungsoptionen und effizienter Speichernutzung, sodass es gut für KI-fokussierte Anwendungen geeignet ist, die strukturierte Datenanalyse benötigen. Ihre Entscheidung sollte auf der Expertise Ihres Teams (SQL vs. suchspezifisches Wissen), Ihrem bestehenden Technologie-Stack, Ihren Speicheranforderungen und der Frage basieren, ob Sie hybride Suchfunktionen oder Optimierung für KI-Workloads benötigen.
Lesen Sie dies, um einen Überblick über Elasticsearch und MyScale zu erhalten, aber um diese zu bewerten, müssen Sie sie anhand Ihres Anwendungsfalls beurteilen. Ein Tool, das dabei helfen kann, ist VectorDBBench, ein Open-Source-Benchmarking-Tool zum Vergleich von Vektordatenbanken. Letztendlich wird ein gründliches Benchmarking mit Ihren eigenen Datensätzen und Abfragemustern entscheidend sein, um eine Entscheidung zwischen diesen beiden leistungsstarken, aber unterschiedlichen Ansätzen für die Vektorsuche in verteilten Datenbanksystemen zu treffen.
Open-Source-VectorDBBench verwenden, um Vektordatenbanken selbst zu bewerten und zu vergleichen
VectorDBBench ist ein Open-Source-Benchmarking-Tool für Benutzer, die leistungsstarke Systeme zur Datenspeicherung und -abfrage benötigen, insbesondere Vektordatenbanken. Dieses Tool ermöglicht es Benutzern, verschiedene Vektordatenbanksysteme wie Milvus und Zilliz Cloud (das verwaltete Milvus) mit ihren eigenen Datensätzen zu testen und zu vergleichen und das System zu finden, das zu ihren Anwendungsfällen passt. Mit VectorDBBench können Benutzer Entscheidungen auf Grundlage der tatsächlichen Leistung von Vektordatenbanken treffen, statt auf Marketingaussagen oder Hörensagen zu vertrauen.
VectorDBBench ist in Python geschrieben und unter der MIT-Open-Source-Lizenz lizenziert, was bedeutet, dass jeder es frei nutzen, ändern und verbreiten kann. Das Tool wird aktiv von einer Community von Entwicklern gepflegt, die sich dafür einsetzen, seine Funktionen und Leistung zu verbessern.
Laden Sie VectorDBBench aus seinem GitHub-Repository herunter, um unsere Benchmark-Ergebnisse zu reproduzieren oder Leistungsergebnisse mit Ihren eigenen Datensätzen zu erhalten.
Werfen Sie einen kurzen Blick auf die Leistung gängiger Vektordatenbanken im VectorDBBench Leaderboard.
Lesen Sie die folgenden Blogs, um mehr über die Bewertung von Vektordatenbanken zu erfahren.
Weitere Ressourcen zu VectorDB, GenAI und ML
Weiterlesen

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


