DuckDB - Open-Source-Embedded-OLAP-DB
(duckdb.org)"SQLite für Analytics"
-
Ein eingebettetes RDBMS, optimiert für komplexe Analyseabfragen
-
In C++11 geschrieben, als einzelnes Binary ohne Abhängigkeiten, das innerhalb des Host-Prozesses läuft
-
Bietet APIs für Python/R/Java/C/C++/Node.js
-
Speichert die DB wie SQLite in einer einzigen Datei
-
Geeignete Use Cases
→ Verarbeitung und Speicherung tabellarischer Daten wie CSV/Parquet
→ Interaktive Datenanalyse mit Join & Aggregate über mehrere große Tabellen
→ Wenn gleichzeitig große Änderungen an mehreren großen Tabellen vorgenommen werden (z. B. mehrere Zeilen hinzufügen oder Spalten hinzufügen/entfernen/ändern)
6 Kommentare
Es scheint das Ziel zu sein, den Embedded-DB-Bereich in OLTP mit SQLite und OLAP mit DuckDB aufzuteilen.
Im Gegensatz zu SQLite, das vor 20 Jahren erschien und den Embedded-Bereich inzwischen praktisch beherrscht, ist dies ein Open-Source-Neuling, bei dem seit Version 0.1 erst etwa anderthalb Jahre vergangen sind. ^^
Vor ein paar Tagen wurde neu eine
node.js-API hinzugefügt, wodurch es sich nun offenbar deutlich vielseitiger und bequemer einsetzen lässt.Jedes Mal, wenn ich das sehe, merke ich, dass ich den Unterschied zwischen OLTP und OLAP nicht wirklich klar verstehe. Schluchz. Es scheint auch keinen Inhalt zu geben, der das mal wirklich verständlich erklärt.
Stimmt, die gängige Erklärung, der man normalerweise begegnet, ist ja Transaktionen und Analyse (ganz dem Namen entsprechend), und bekannte RDBs sind sowohl beim Einfügen und Löschen schnell als auch bei Analyseaufgaben. Zum Beispiel lässt sich bei Oracle oder PostgreSQL nicht wirklich eindeutig sagen, dass sie auf die eine oder andere Seite spezialisiert wären ... Und bei Analysen im Big-Data-Zeitalter hat man ohnehin das Gefühl, dass solche Systeme davon schon längst weit entfernt sind. Ich wollte damit nur sagen, dass ich nicht so recht verstehe, welche Bedeutung die Unterscheidung zwischen OLTP und OLAP heute noch hat ^^;
OLTP ist auf Einfügen, Herausnehmen, Löschen usw. spezialisiert.
OLAP ist eher dafür da, die bereits vorhandenen Daten auf verschiedene Weise zu bearbeiten und zu analysieren.
So kann man es ungefähr verstehen, oder?
Hm … ich erkläre es so:
OLTP ist horizontal: Es wird zeilenweise etwas hinzugefügt (eine neue Bestellung geht ein)
OLAP ist vertikal: Man liest eine bestimmte Spalte vollständig aus, um etwas zu berechnen oder zu ändern (z. B. den durchschnittlichen Tagesumsatz berechnen)
OLTP ist horizontal
OLAP ist vertikal