Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語
Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語

MyScale vs. Zilliz: Der Kampf um die Kostenwirksamkeit

Vektordatenbanken und Vektorsuchen gewinnen aufgrund ihrer Geschwindigkeit und Skalierbarkeit schnell an Beliebtheit. Im Gegensatz zu herkömmlichen maschinellen Lernmodellen, die umfangreiches Training erfordern, können Vektorsuchen schnell mit grundlegenden Ähnlichkeitsmaßen wie dem euklidischen Abstand und der Kosinusähnlichkeit in einer Vektordatenbank durchgeführt werden. Dies macht sie hoch skalierbar und kostengünstiger im Vergleich zu ML-basierten Modellen.

Da der Einsatz von Vektordatenbanken weiter zunimmt, ist es natürlich, die am besten geeignete Datenbank basierend auf spezifischen Anforderungen zu suchen und verschiedene Faktoren wie Durchsatz und Kosten zu berücksichtigen. Um Benutzern bei informierten Entscheidungen zu helfen, starten wir eine Reihe von Artikeln, die detaillierte Vergleiche verschiedener Vektordatenbanken bieten. In unserem letzten Blog haben wir einen gründlichen Vergleich zwischen MyScale und Pinecone durchgeführt (opens new window). Dieses Mal werden wir einen eingehenden Vergleich zwischen MyScale und Zilliz durchführen.

# MyScale

MyScale ist eine cloudbasierte Datenbank, die speziell für KI-Anwendungen und -Lösungen entwickelt wurde und die skalierbare Open-Source-Datenbank ClickHouse nutzt. Die wichtigsten Vorteile der Verwendung von MyScale sind:

  • Unterstützt und verwaltet die analytische Verarbeitung von strukturierten und vektorisierten Daten auf einer einheitlichen Plattform.
  • Nutzt eine fortschrittliche OLAP-Datenbankarchitektur, um Operationen auf vektorisierten Daten mit außergewöhnlicher Geschwindigkeit auszuführen.
  • Erfordert nur SQL als Programmiersprache, um mit MyScale zu interagieren.

# Vorstellung von Zilliz

Zilliz, basierend auf dem Open-Source-Projekt Milvus, ist eine leistungsstarke cloudbasierte Vektordatenbank, die für die hochleistungsfähige Ähnlichkeitssuche und maschinelles Lernen entwickelt wurde. Während Milvus als Grundlage dient, bietet Zilliz einen vollständig verwalteten Cloud-Service mit kostenlosen und Pay-as-you-go-Tarifen, der für Benutzer entwickelt wurde, die skalierbares Vektormanagement ohne den Overhead der Infrastrukturverwaltung benötigen.

In diesem Blog werden wir die Cloud-Angebote von MyScale und Zilliz vergleichen, um Ihnen dabei zu helfen, zu verstehen, welches besser für Ihre Bedürfnisse geeignet sein könnte. Lassen Sie uns den Vergleich mit dem Hosting beginnen.

# Hosting

Das Hosting ist ein entscheidender Aspekt bei der Auswahl einer Datenbanklösung, da es sich erheblich auf Leistung, Skalierbarkeit und Verwaltung auswirkt. Eine robuste Hosting-Option stellt sicher, dass Ihre Datenbank unterschiedliche Lasten bewältigen, zugänglich bleiben und einfach gewartet werden kann. Darüber hinaus hilft das Verständnis der Hosting-Optionen dabei festzustellen, ob Sie die Datenbank lokal mit eigenen Ressourcen bereitstellen müssen oder sich für einen Cloud-Hosting-Service entscheiden sollten.

In Bezug auf das Hosting bieten sowohl MyScale als auch Zilliz Open-Source-Versionen, cloudbasierte Lösungen und lokal gehostete Lösungen an. Das Cloud-Hosting bietet sowohl kostenlose als auch kostenpflichtige Tarife, wie wir gleich im Detail sehen werden.

Für das lokale Hosting ist das Docker-Image eine allgemeine Option. Wir können das MyScale Docker-Image wie folgt starten:

docker run --name MyScale --net=host myscale/MyScale:1.6

Für Zilliz können wir das Docker Compose wie folgt verwenden:

curl <https://github.com/milvus-io/milvus/releases/download/v2.0.2/milvus-standalone-docker-compose.yml> -o docker-compose.yml
docker-compose up -d

# Kernfunktionen

Nun werden wir den Vergleich in Bezug auf die Kernfunktionen der beiden Datenbanken beginnen.

# Abfragesprache und API-Unterstützung

Sowohl Zilliz als auch MyScale bieten Unterstützung für Clients in verschiedenen Programmiersprachen, darunter Python, Node.js und Go. Zilliz unterstützt zusätzlich C++, .Net (teilweise), RESTful und Ruby.

Die eigentliche Stärke von MyScale liegt jedoch in seiner Unterstützung für SQL. Sie können herkömmliche SQL-Abfragen mit MyScale verwenden, und es funktioniert nahtlos mit Vektordatenbanken oder sogar einer Kombination aus herkömmlichen und Vektordatenbanken.

TL;DR:

Sowohl Zilliz als auch MyScale bieten SDKs in verschiedenen Sprachen an, aber MyScale hat einen deutlichen Vorteil durch seine vollständige SQL-Unterstützung.

# Metadatenunterstützung

Zilliz unterstützt reguläre Ausdrücke bei der Metadatenfilterung. Es unterstützt auch einen neuen skalaren invertierten Index in seiner neuesten Version (basierend auf Milvus 2.4).

MyScaleDB unterstützt die Metadatenfilterung durch seine Integration mit ClickHouse, das robuste Indizierung und parallele Verarbeitungsfähigkeiten bietet. Dadurch kann MyScaleDB leistungsstarke, genaue gefilterte Suchen durchführen, insbesondere bei der Verarbeitung großer Datensätze. Darüber hinaus wird eine Vorfilterungsstrategie angewendet, um den Datensatz vor der eigentlichen Vektorsuche einzugrenzen und so die Leistung und Genauigkeit zu verbessern.

TL;DR:

Zilliz hat den Vorteil von regulären Ausdrücken bei der Metadatenfilterung, während die Metadatenfilterung von MyScale dank der Skalierbarkeit von ClickHouse keine Leistungseinbußen aufweist, selbst bei größeren Datensätzen.

# Unterstützte Datentypen

Sowohl MyScale als auch Zilliz unterstützen offensichtlich Vektordaten. Die neueste Version von Zilliz unterstützt auch Sparse- und Binärvektoren. MyScale hingegen glänzt mit seiner vollständigen SQL-Unterstützung, die es ihm ermöglicht, alle SQL-Datentypen zu verarbeiten. Hier ist zum Beispiel eine Tabelle mit Vektor (body_vector) und einigen anderen Datentypen (wie UInt64 und String in diesem Fall) als Attribute.

CREATE TABLE default.wiki_abstract_mini(
    `id` UInt64,
    `body` String,
    `title` String,
    `url` String,
    `body_vector` Array(Float32),
    CONSTRAINT check_length CHECK length(body_vector) = 1024
)
ENGINE = MergeTree
ORDER BY id
SETTINGS index_granularity = 128;

TL;DR:

Zilliz hat den Vorteil der Unterstützung von Sparse-Vektoren, während MyScale einen deutlich überlegenen Vorteil bei den vollständigen SQL-Datentypen hat.

# Indizierung

Sowohl MyScale als auch Zilliz unterstützen viele Indizierungsalgorithmen wie HNSW, IVF (und seine Varianten), FLAT usw. Zilliz bietet Autoindex, das Funktionen wie dynamisches Caching und dynamische Quantisierung verwendet. Autoindex ist kein völlig neuer Indizierungsalgorithmus und verwendet diese unterstützten Indizierungsalgorithmen im Hintergrund.

MyScale geht noch einen Schritt weiter als Zilliz und alle beliebten Vektordatenbanken, indem es den Multi-Scale Tree Graph (MSTG) unterstützt, einen Algorithmus, der hierarchisches Baumclustering und graphenbasierte Suche kombiniert. MSTG übertrifft zeitgenössische Algorithmen, indem es schnellere Suchen mit reduziertem Ressourcenverbrauch ermöglicht.

# Gefilterte Vektorsuche und Volltextsuche

MyScale optimiert die gefilterte Vektorsuche durch seinen Multi-Scale Tree Graph (MSTG)-Algorithmus in Kombination mit Bitmasking-Techniken. Diese Kombination, zusammen mit den fortschrittlichen Indizierungs- und parallelen Verarbeitungsfähigkeiten von ClickHouse, ermöglicht es MyScale, große Datensätze effizient zu verarbeiten. Durch die Verwendung einer Vorfilterungsstrategie grenzt MyScale den Datensatz vor der eigentlichen Vektorsuche ein, um sicherzustellen, dass nur die relevantesten Daten verarbeitet werden, was sowohl die Leistung als auch die Genauigkeit erheblich verbessert.

Zilliz hingegen nutzt ebenfalls Bitmasken, um Filterbedingungen effektiv auf große Datensätze anzuwenden. Dieser Ansatz ermöglicht es Zilliz, komplexe Filteroperationen mit minimalem Einfluss auf die Leistung durchzuführen.

Hybrid Search Explain

Beide Datenbanken sind dank Tantivy reich an Suchfunktionen. Sie unterstützen die Volltextsuche, die von den meisten anderen Vektordatenbanken nicht unterstützt wird. Offensichtlich gibt es keinen Unterschied zwischen den beiden, da beide auch die hybride Suche (opens new window) unterstützen. Bei MyScale ist es jedoch viel einfacher, diese Funktion mit der Funktion HybridSearch() durchzuführen. Sie kombiniert die Ergebnisse von Volltext- und Vektorsuchen, um bessere Ergebnisse zu erzielen. Das obige Bild erklärt dies recht gut für eine gegebene Tabelle wiki_abstract_mini.

# Mehrvektorsuche

Sowohl MyScale als auch Zilliz unterstützen die Mehrvektorsuche. Zilliz bietet zusätzlich die Gruppensuche an, bei der in mehreren Vektoren gespeicherte Entitäten in den Suchergebnissen zu konsolidierten Ergebnissen gruppiert werden können. Ebenso unterstützt MyScale die Gruppensuche über die GROUP BY-Klausel in SQL. Dies ermöglicht es Benutzern, Suchergebnisse effizient zu aggregieren und zu gruppieren, was die Handhabung und Analyse großer Datensätze in MyScale erleichtert.

# Geo-Suche

Die Geo-Suche ist nicht nur für Karten- und GIS-Anwendungen, sondern auch für viele andere Anwendungen von großer Bedeutung. Selbst eine einfache Anwendung wie FoodPanda oder ein Lebensmittelgeschäft kann sie benötigen. Während Zilliz dies nicht bietet, verfügt MyScale über eine Reihe von geografischen Funktionen (opens new window), um die Geo-Suche zu unterstützen. Zum Beispiel findet diese Funktion den Abstand zwischen zwei Punkten auf der Erde (angenommen als Mannigfaltigkeit):

greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)

# Integration von LLM-APIs

Sowohl MyScale als auch Zilliz unterstützen eine Reihe von LLM-APIs wie OpenAI, LLamaIndex, LangChain usw. Beide unterstützen auch Cohere-Modelle und DSPy für automatisierte Anregungen. Hier ist ein Beispielcode, der LangChain mit MyScale integriert.

from langchain_community.vectorstores import MyScale

docsearch = MyScale.from_documents(docs,embeddings)
output= docsearch.similarity_search("How LLMs operate?",3)

# Preisgestaltung

Am Ende sind alle Lösungen durch zwei ultimative Parameter begrenzt: Preis und Effizienz. Für die Effizienz werden wir sie in Kürze benchmarken. Zunächst werden wir sie wirtschaftlich vergleichen.

Sowohl Zilliz als auch MyScale bieten kostenlose und kostenpflichtige Tarife an. Hier bieten wir einen kurzen (und prägnanten) Vergleich beider.

# Kostenloser Tarif

Der kostenlose Tarif von Zilliz unterstützt zwei Sammlungen mit bis zu 0,5 Mio. 768-dimensionale Vektoren (mit GCP-Hosting; Azure und AWS sind nur auf dedizierten Servern verfügbar).

Auf der anderen Seite bietet MyScale kostenlosen Speicherplatz für bis zu 5 Millionen 768-dimensionale Vektoren, was 10-mal mehr als die Kapazität einer Sammlung oder 5-mal mehr als die kombinierte Kapazität der beiden Sammlungen bedeutet. Dies ist deutlich höher als der kostenlose Tarif von Zilliz (gleichbedeutend mit 1CU Kapazitätsoptimierung im kostenpflichtigen Tarif) und macht MyScale zu einer attraktiveren Option für Benutzer, die größere Datensätze ohne anfängliche Kosten verwalten müssen.

# Kostenpflichtiger Tarif

Kostenlose Tarife eignen sich gut für Experimente, aber letztendlich müssen wir unsere Lösungen auf dedizierten Servern bereitstellen, was Geld kostet. Wie wertvoll MyScale oder Zilliz für Ihre Investition ist, wird hier analysiert.

Hinweis:

Die physischen Knoten von Zilliz werden als Computing Uni (CU) bezeichnet, während die von MyScale als Pod bezeichnet werden (und im Folgenden entsprechend bezeichnet werden).

Sowohl Zilliz als auch MyScale bieten zwei Arten von kostenpflichtigem Hosting an:

  • Kapazitätsoptimiert: Zielt darauf ab, mehr Speicherplatz pro Pod/CU zu haben. MyScale bietet 10 Millionen Vektoren pro Pod, während Zilliz bis zu 5 Millionen Vektoren pro CU bietet.
  • Leistungsoptimiert: Für Anwendungen, die Wert auf Leistung legen (geringere Latenz, höhere QPS). Hier bietet MyScale bis zu 5 Millionen Vektoren pro Pod. Zilliz bietet bis zu 1,5 Millionen Vektoren pro CU.

Wenn Sie sich nicht sicher sind, für welches Sie sich entscheiden sollen, wählen Sie das kapazitätsoptimierte Hosting.

In einer datengetriebenen Welt wäre es nützlich, die genauen Zahlen zu zeigen, da dies den Vergleich viel einfacher macht. Für den Vergleich verwenden wir Vektordimensionen von 768, nehmen einen Monat mit 30 Tagen an ****und es handelt sich um GCP-Hosting, sofern nicht anders angegeben.

Boost Your AI App Efficiency now
Sign up for free to benefit from 150+ QPS with 5,000,000 vectors
Free Trial
Explore our product

# Serverless Zilliz

Für das serverlose Zilliz-Hosting (das virtuelle CUs verwendet) nehmen wir an, dass in einem Monat insgesamt 1 Million Lese- und 1 Million Schreibvorgänge durchgeführt werden.

Vektorkapazität Stundensatz
1 Million 0,09 $
--- ---
5 Millionen 0,21 $
10 Millionen 0,31 $
20 Millionen 0,47 $
40 Millionen 0,74 $
80 Millionen 1,15 $
Nun vergleichen wir MyScale mit dediziertem Zilliz (unter Verwendung tatsächlicher CUs). Wie bereits erwähnt, bieten sowohl MyScale als auch Zilliz zwei Arten von Hosting an: kapazitätsoptimiert und leistungsoptimiert. Beide werden entsprechend verglichen.

# Kapazitätsoptimierung

Für kapazitätsoptimierte CUs bietet Zilliz 5 Millionen pro CU und MyScale 10 Millionen pro Pod. Diese Lücke führt zu einem deutlich niedrigeren Stundensatz für MyScale.

Vektorkapazität Zilliz ($) Computing Units (CUs) MyScale ($) Pods
10 Millionen 0,276 2 0,094 1
--- --- --- --- ---
20 Millionen 0,55 4 0,19 2
40 Millionen 1,1 8 0,38 4
80 Millionen 2,2 16 0,76 8

# Leistungsoptimierung

Während wir oben besprochen haben, dass MyScale in den leistungsoptimierten Einstellungen 5 Millionen pro Pod bietet, was mehr als 3-mal so viel ist wie das von Zilliz bereitgestellte Limit (1,5 Millionen pro Pod), gibt es noch viel mehr dazu. Zilliz berechnet zusätzliche CUs (offensichtlich ohne Grund). Wenn Sie die Anzahl der CUs für - sagen wir 10 Millionen Vektoren berechnen, sollten es sein:

1.510​=6,67≈7

Aber es zeigt Ihnen 8 CUs an. Gleiches gilt für 20 Millionen, wo es 14 berechnen sollte, aber ein paar zusätzliche CUs berechnet. Schließlich behebt es dies für 40 Millionen, um Ihnen die genaue Anzahl der CUs in Rechnung zu stellen (was immer noch weit unter den stündlichen Gebühren für die jeweilige Lösung von MyScale liegt).

Vektorkapazität Zilliz CUs MyScale Pods
5 Millionen 0,55 4 0,17 1
--- --- --- --- ---
10 Millionen 1,1 8 (sollte 7 sein) 0,33 2
20 Millionen 2,2 16 (sollte 14 sein) 0,67 4
40 Millionen 3,84 28 1,33 8
80 Millionen 7,68 56 2,67 16

TL;DR**:

Wenn es um das Preis-Leistungs-Verhältnis geht, gibt es keinen Wettbewerb mit MyScale. Es bietet 2x und mehr als 3x Vektoren für die kapazitäts- und leistungsoptimierten Tarife im Vergleich zu Zilliz - und das alles zu einem (immer noch) niedrigeren Stundensatz.

# Benchmarking

Es wäre ein fairer Vergleich, die beiden in Bezug auf einige grundlegende Eigenschaften zu benchmarken. Für das Benchmarking verwenden wir MyScale (unter Verwendung von MSTG) gegenüber diesen beiden verschiedenen Konfigurationen von Zilliz. Um den Benutzern einen unvoreingenommenen Vergleich zu ermöglichen, verwenden wir die neuesten Versionen von Zilliz:

  • 2024 - Kapazitätsoptimiert (1 CU)
  • 2024 - Leistungsoptimiert (4 CUs)

# Durchsatz

Die Anzahl der Abfragen pro Sekunde ist ein gutes grundlegendes Maß für eine Vektordatenbank. Wir können deutlich sehen, dass MyScale (dunkler Limettengrün) Zilliz mit einzelnen Computing Units übertrifft. Zilliz mit mehreren Einheiten (orangefarben) übertrifft MyScale in Bezug auf QPS. MyScale kann jedoch dank der Präzisionsoptimierung eine höhere Präzision erreichen.

Durchsatz

TL;DR**:

MyScale übertrifft Zilliz mit einer einzelnen Computing Unit. Bei 4 Einheiten übertrifft Zilliz, obwohl MyScale eine bessere Präzision aufweist.

# Durchschnittliche Abfrage-Latenz

Die durchschnittliche Abfrage-Latenz kann als die Zeit definiert werden (je niedriger, desto besser), die die Datenbank im Durchschnitt benötigt, um die Abfrageergebnisse zurückzugeben. MyScale übertrifft die einzelnen Computing Unit-Zilliz-Knoten hier deutlich. Selbst für die höheren CUs ist die Abfrage-Latenz für MyScale und Zilliz von der gleichen Größenordnung. Für 16 Threads zeigt der 4CU-Knoten von Zilliz eine Verbesserung gegenüber MyScale.

Durchschnittliche Abfrage-Latenz

# P95-Latenz

Bei der P95-Latenz haben wir ähnliche Ergebnisse. Sobald die Threads über 8 hinausgehen, zeigt der 4CU-Knoten von Zilliz eine bessere (schnellere) Latenz gegenüber MyScale, während für die einzelne CU MyScale deutlich besser abschneidet.

P95-Latenz

# Daten-Eingabezeit

Dieses Benchmarking ist auf einen einzelnen Thread beschränkt, daher zeigen wir hier nur ein Diagramm. MyScale (hier in türkis) übertrifft Zilliz deutlich in Bezug auf die Zeit, die zum Hochladen und Erstellen benötigt wird.

Daten-Eingabezeit

# Monatlicher Kostenvergleich

Für eine einzelne Computing Unit ist Zilliz in Bezug auf die monatlichen Kosten (pro 100 QPS) mit MyScale vergleichbar (liegt jedoch immer noch zurück), aber 4 CU-Setups sind deutlich teurer als MyScale.

Monatlicher Kostenvergleich

TL;DR**:

MyScale bietet Ihnen das beste Preis-Leistungs-Verhältnis, indem es minimale monatliche Kosten pro QPS bietet.

Join Our Newsletter

# Fazit

Wenn Sie über ein großzügiges Budget verfügen, bieten sowohl Zilliz als auch MyScale wettbewerbsfähige Funktionen, was die Wahl zwischen ihnen je nach spezifischen Benutzeranforderungen schwierig macht.

Wenn es jedoch um Kostenwirksamkeit geht, sticht MyScale heraus. Obwohl die neueste Version von Zilliz erweiterte Funktionen wie die Mehrvektorsuche und die Unterstützung von Sparse-Vektoren enthält, sind diese Verbesserungen noch in der Beta-Phase und gleichen den erheblichen Preisunterschied nicht aus.

MyScale bietet ein besseres Preis-Leistungs-Verhältnis, insbesondere in seinen kostenpflichtigen Tarifen. Darüber hinaus bietet es weitere überzeugende Vorteile wie die vollständige SQL-Unterstützung, den überlegenen MSTG-Indizierungsalgorithmus und großzügigere kostenlose Tarife. Diese Faktoren machen MyScale zu einer attraktiveren Option für Benutzer, die sowohl Leistung als auch Budget priorisieren.

Keep Reading

Start building your Al projects with MyScale today

Free Trial
Contact Us