In der Vergangenheit habe ich ClickHouse (opens new window) für verschiedene Data-Warehousing- und Data-Analytics-Projekte verwendet. Aber nach dem Boom von Generative AI und Vektor-Embeddings suchte ich nach einer Datenbank, die mit modernsten Technologien verwendet werden kann. Es gab so viele Vektordatenbanken wie Pinecone (opens new window), Weaviate (opens new window) und Milvus (opens new window), aber all diese Vektor-DBs waren nur auf Vektoren spezialisiert und erforderten viel Zeit, um die Grundlagen gründlich zu verstehen und sich an die Syntax zu gewöhnen.
MyScale (opens new window) ist nicht so beliebt wie die oben genannten Vektordatenbanken und wird am Ende der Vektor-DB-Funktionsmatrix (opens new window) aufgeführt. Ich habe es genauer erkundet und herausgefunden, dass es alle Funktionen hatte, die ich benötigte, und eine sehr einfache Dokumentation. Es basiert auf ClickHouse und kann Vektoren für Generative AI-Anwendungen und tabellarische Daten für normale SQL-Anwendungen speichern. Meine bisherige Erfahrung mit ClickHouse und SQL half mir, mich sehr schnell mit den Grundlagen vertraut zu machen, und ich benutze es seit den letzten 4 Monaten.
# MyScale vs ClickHouse
Ich habe versucht, beide Datenbanken auf eine sehr einfache Weise zu vergleichen, damit Sie eine klare Vorstellung von diesen beiden Datenbanken bekommen.
Funktion | ClickHouse | MyScale |
---|---|---|
Basistechnologie | Open-Source spaltenorientiertes DBMS | Cloud-basierte SQL-Vektordatenbank auf Basis von ClickHouse |
Hauptverwendung | OLAP mit echtzeitfähiger SQL-Abfrageverarbeitung | KI-Anwendungen, Kombination von Vektor-Ähnlichkeitssuche mit SQL |
Datenspeichermethode | Spaltenorientierter Speicher für effiziente Abfragen | Spaltenorientierter Speicher, der Vektoren und strukturierte Daten verarbeitet |
Datenverarbeitung | Strukturierte Daten | Sowohl strukturierte Daten als auch Vektoren |
Abfragesprache | SQL | Vollständige SQL-Unterstützung, einschließlich natürlicher Sprachabfragen |
Hauptmerkmale | Echtzeit-Analyseberichte, Effizienz bei bestimmten Abfragen | KI-Integration, Genauigkeit, Leistung und Kosteneffizienz |
Anwendungsfälle | Traditionelle OLAP-Szenarien | Fortgeschrittene KI- und maschinelle Lernanwendungen |
Ich hoffe, Sie haben die Unterschiede verstanden und warum ich mich für MyScale entschieden habe. Lassen Sie uns jetzt eine interessante und hilfreiche Funktion erkunden, die vor einigen Tagen hinzugefügt wurde.
# Erkunden des MyScale Playgrounds
Als ich von ClickHouse zu MyScale wechselte, gab es einige Dinge, von denen ich dachte, dass MyScale daran arbeiten müsste, und einer davon war ein Playground, um Abfragen zu schreiben und die Ergebnisse ohne Anmeldung zu sehen. MyScale hat nach und nach viele Verbesserungen an seiner Infrastruktur vorgenommen, und sie haben die meisten meiner gewünschten Funktionen integriert, aber ein Playground fehlte immer noch.
Kürzlich haben sie endlich einen Playground zu ihrer Plattform hinzugefügt, und ich liebe es einfach. Ich habe zuvor Playground von vielen anderen Anbietern erkundet, aber ich denke, es ist der einzige Playground, der die Ausführung von SQL- und Vektor-Joint-Abfragen (opens new window) ermöglicht, was eine seltene Funktion ist.
Lassen Sie uns jetzt den MyScale Playground (opens new window) gemeinsam erkunden.
# Benutzerfreundliche Benutzeroberfläche
Im Playground sehen Sie, dass bereits mehrere Beispielanwendungen für verschiedene Szenarien erstellt wurden und für jede Anwendung verschiedene Datensätze hochgeladen wurden.
Von all diesen Beispielanwendungen gefällt mir die Anwendung Working with Texts (opens new window) am besten. Sie enthält den vorab geladenen ArXiv-Datensatz mit über 2,2 Millionen Papieren mit Metadaten.
Öffnen Sie die Anwendung, und Sie sehen eine Benutzeroberfläche wie diese:
Das erste, was Sie bemerken werden, wenn Sie eine Anwendung öffnen, sind deren Beschreibungen und Details zur für diese Anwendung verwendeten Tabelle. Durch das Lesen der Beschreibung können Sie leicht verstehen, wofür die Anwendung verwendet wird und wie Sie mit dem Datensatz arbeiten können. Alle verfügbaren Datenbanken werden auf der linken Seite angezeigt, damit Sie die vorhandenen Tabellen erkunden können.
Dann gibt es verschiedene Beispielbefehle, die Sie verwenden können, um die Anwendung zu erkunden und zu experimentieren. Schauen wir uns einige der Beispielabfragen an:
# Einfache Abfrage
Sobald Sie die erste Abfrage ausführen, sehen Sie den Befehl, der verwendet wurde, um die Tabelle für diese Anwendung zu erstellen.
Sie können auf "Ausführen" klicken, um Ihren Befehl auszuführen und die Ergebnisse anzuzeigen. Wenn ein Ergebnis Werte enthält, die zu groß sind, um vollständig in den Spalten angezeigt zu werden, können Sie auf diese Spalte klicken, und es wird ein neues Dialogfeld geöffnet, das die vollständigen Ergebnisse anzeigt (wie im obigen GIF gezeigt).
Es wurden auch einige Beispielabfragen mit vordefinierten Funktionen (opens new window) hinzugefügt. Ich werde jedoch diese Abfragen überspringen und direkt zur letzten Abfrage übergehen, um die Vektor-SQL-Abfrage durchzuführen.
# Vektor-SQL-Suchabfrage
Wie ich bereits erwähnt habe, ist MyScale eine sehr dynamische Datenbank, in der Sie SQL mit fortgeschrittenen Vektor-Suchabfragen ausführen können. Diese Kombination ermöglicht es MyScale, komplexe Datensätze auf effektive und kostengünstige Weise zu verarbeiten. Einige Beispielabfragen werden nur zur besseren Verständnis des Datensatzes bereitgestellt, aber die potenziellen Anwendungen von MyScale gehen über diese Beispiele hinaus. Sie können beispielsweise die vertraute SQL-Syntax für eine eingehende Analyse des Datensatzes nutzen und so wertvolle Erkenntnisse gewinnen. Nehmen Sie die folgende Abfrage, sie gibt Einblick in die Entwicklung und aktuellen Trends in der Forschung zur Quantencomputing:
WITH recent_quantum_papers AS (
SELECT id, vector, title, abstract, pubdate
FROM default.ChatArXiv
WHERE abstract LIKE '%quantum computing%' AND pubdate > '2019-01-01'
),
reference_vector AS (
SELECT vector
FROM recent_quantum_papers
ORDER BY pubdate DESC
LIMIT 1
)
SELECT
id,
title,
abstract,
EXTRACT(YEAR FROM pubdate) AS year,
distance(vector, (SELECT vector FROM reference_vector)) AS similarity
FROM recent_quantum_papers
ORDER BY year DESC, similarity ASC
LIMIT 10;
Diese Abfrage filtert wissenschaftliche Arbeiten zum Quantencomputing, die nach 2019 veröffentlicht wurden, und verwendet einen Vektor aus der neuesten Arbeit, um den inhaltlichen Zusammenhang zwischen ihnen zu messen. Dieser Ansatz sortiert nicht nur die Arbeiten chronologisch, sondern auch nach ihrer Relevanz für die neuesten Forschungstrends. Das folgende Bild zeigt das Suchergebnis, das die Metadaten der Dokumente und die Ähnlichkeitsdistanz enthält:
Mit MyScale können Sie auch viel komplexere Abfragen schreiben, da es volle SQL- und Vektorunterstützung bietet. Die anderen Beispielanwendungen sind ebenfalls beeindruckend. Wer daran interessiert ist, kann sie erkunden.
Hinweis: Das direkte Hochladen von Daten in den MyScale Playground wird nicht unterstützt. Um Ihre Daten zu verwenden, melden Sie sich zuerst bei MyScale an und befolgen Sie dann die schrittweisen Anweisungen im Schnellstartleitfaden (opens new window).
# Fazit
Zusammenfassend habe ich gute Erfahrungen mit dem MyScale Playground gemacht, der eine benutzerfreundliche Umgebung zur nahtlosen Integration von SQL- und Vektorabfragen bietet. Die Einbindung von branchenüblichen Beispielanwendungen erwies sich als unschätzbar für das Lernen und den Übergang von traditionellen Datenbanken.
Auf der robusten Grundlage von ClickHouse aufbauend, umfasst MyScale alle seine Funktionen und erfüllt gleichzeitig die Anforderungen moderner KI-Anwendungen. Die Unterstützung für die Integration mit OpenAI (opens new window), LangChain (opens new window) und LlamaIndex (opens new window) unterstreicht seine Vielseitigkeit.
Wenn Sie an MyScale interessiert sind, lohnt es sich, den MyScale Playground zu erkunden, insbesondere wenn man bedenkt, dass die Benutzeroberfläche des Playgrounds so einfach und leicht zu bedienen ist. Das war meine Erkundung des MyScale Playgrounds. Teilen Sie gerne Ihre Gedanken oder nehmen Sie an Diskussionen in den Kommentaren teil.