DuckDB ist ein quelloffenes, spaltenorientiertes relationales Datenbankmanagementsystem (RDBMS), das für hochperformante analytische Abfragen in eingebetteten Konfigurationen entwickelt wurde. Es zielt auf Online Analytical Processing (OLAP)-Workloads ab, wie das Kombinieren von Tabellen mit Hunderten von Spalten und Milliarden von Zeilen, eher als auf transaktionale (OLTP)-Anwendungen. Im Gegensatz zu traditionellen Client-Server-Datenbanken läuft DuckDB innerhalb eines Host-Prozesses, was es für interaktive Datenanalyse, skriptbasierte Pipelines und die Integration mit Tools wie Python geeignet macht. Nach aktuellen Zählungen verzeichnet das Projekt über 6 Millionen Downloads pro Monat.
Das System ist um eine vektorisierte Abfrageverarbeitungs-Engine herum aufgebaut, ohne externe Abhängigkeiten über einen C++17-Compiler hinaus. Der SQL-Parser von DuckDB stammt aus der pg_query-Bibliothek von Lukas Fittl, die selbst eine abgespeckte Version des PostgreSQL-Parsers ist. Daten können entweder in Apache-Parquet-Dateien oder in einem eigenen Dateispeicherformat gespeichert werden, die beide für effiziente Scans und Bulk-Operationen optimiert sind. DuckDB kompiliert außerdem über Emscripten zu WebAssembly, was die SQL-Ausführung in browserbasierten Analysetools ermöglicht.
Geschichte
DuckDB wurde ursprünglich von Mark Raasveldt und Hannes Mühleisen am Centrum Wiskunde & Informatica (CWI) in den Niederlanden entwickelt. Die Mitbegründer zielten darauf ab, eine prozessinterne OLAP-Datenbank für schnelle analytische Abfragen zu schaffen und damit eine Lücke zu füllen, die eingebettete Datenbanken wie SQLite hinterließen, die sich auf transaktionale Verarbeitung konzentrieren. Die erste öffentliche Version erschien 2019, und Version 1.0.0 mit dem Codenamen SnowDuck wurde am 3. Juni 2024 veröffentlicht.
Architektur und Funktionen
DuckDB verwendet eine vektorisierte Abfrageverarbeitungs-Engine, die auf Datenstapeln statt auf einzelnen Zeilen arbeitet. Diese Designentscheidung verbessert den Durchsatz für analytische Workloads erheblich. Das System kann Daten direkt in NumPy-Arrays ablegen, wenn es über seine Python-Bindung verwendet wird, und unterstützt über zusätzliche APIs auch andere Sprachen. Das Speicherformat von DuckDB ist eine einzelne Datei, die für effiziente Scans, Bulk-Updates, Anhänge und Löschungen ausgelegt ist. Sein Parser, der vom PostgreSQL-Parser abgeleitet ist, behält ein hohes Maß an SQL-Kompatibilität bei.
Vergleich mit anderen Systemen
Die OLAP-Nische von DuckDB bedeutet, dass es nicht direkt mit traditionellen relationalen Datenbankmanagementsystemen wie Microsoft SQL Server, PostgreSQL oder Oracle konkurriert. Während es SQL für Abfragen verwendet, zielt DuckDB auf serverlose Anwendungen ab und liefert extrem schnelle Antworten beim Lesen von Apache-Parquet-Dateien oder seinem eigenen Speicherformat. Dies macht es zu einer beliebten Wahl für die interaktive Analyse großer Datensätze, wo es konventionelle Client-Server-Datenbanken für prozessinterne Workloads übertreffen kann.
Kommerzielle Einführung und Governance
DuckDB wird bei Unternehmen wie Facebook, Google und Airbnb für analytische Aufgaben eingesetzt. Mitautor Hannes Mühleisen leitet DuckLabs, eine Support- und Beratungsfirma, die früher als DuckDB Labs bekannt war. DuckLabs hat bewusst auf Risikokapitalfinanzierung verzichtet, wobei Mühleisen erklärte: „Wir glauben, dass Investitionen die Projektrichtung in Richtung Monetarisierung treiben würden, und wir würden es vorziehen, DuckDB offen und für so viele Menschen wie möglich verfügbar zu halten." Im August 2026 wurde DuckLabs von Amazon übernommen, wobei seine Mitarbeiter der Tochtergesellschaft Amazon Web Services beitraten. Separately, MotherDuck, ein Unternehmen, das eine Datenplattform auf Basis von DuckDB aufbaut, hat 100 Millionen US-Dollar an Finanzierung eingeworben, mit Investoren wie Andreessen Horowitz.
DuckDB-Stiftung
Die unabhängige, gemeinnützige DuckDB-Stiftung sichert die langfristige Wartung und Entwicklung des Projekts. Sie hält einen Großteil des geistigen Eigentums und wird durch Spenden finanziert. Die Satzung der Stiftung stellt sicher, dass DuckDB unter der MIT-Lizenz dauerhaft quelloffen bleibt und das Projekt vor kommerzieller Vereinnahmung schützt. Diese Governance-Struktur, kombiniert mit der Entscheidung von DuckLabs, Risikokapital zu vermeiden, spiegelt das Engagement wider, die Technologie breit zugänglich zu halten.
Sprachunterstützung und Erweiterungen
Neben den nativen C- und C++-APIs bietet DuckDB Bindungen für Python, R, Java, Node.js und andere Sprachen, was es über verschiedene Large language model-Entwicklungsstapel und allgemeine Datentooling hinweg zugänglich macht. Das Python-Paket wird häufig für interaktive Analysen und in Produktionspipelines verwendet, oft als Ersatz für In-Memory-Dataframes, wenn Datensätze den verfügbaren Arbeitsspeicher übersteigen.
Erweiterungen und Ökosystem
Das Erweiterungssystem ermöglicht das dynamische Laden von Modulen ohne Neukompilierung der Kern-Engine. Community-Erweiterungen decken verschiedene Anwendungsfälle ab, von Graph-Abfragen über Kafka-Integration bis hin zu ML-Inferenz. Das DuckDB-Team pflegt mehrere Kern-Erweiterungen, und im offiziellen Register sind über 30 zusätzliche, von der Community gepflegte Erweiterungen aufgeführt. Dieses Ökosystem unterstützt eine breite Palette analytischer Szenarien, darunter Geodatenanalyse, Fernzugriff auf Daten und die Integration mit modernen Data-Lake-Formaten.
Referenzen
- Woodie, Alex. „DuckDB Walks to the Beat of Its Own Analytics Drum." 5. März 2024.