Top-Fragen
Zeitleiste
Chat
Kontext
DuckDB
freies Datenbankmanagementsystem Aus Wikipedia, der freien Enzyklopädie
Remove ads
DuckDB ist ein Open Source relationales Datenbankmanagementsystem (RMDBS). DuckDB wurde als eingebettete Datenbank mit spaltenorientierter Architektur und dem Fokus auf einfache Handhabung für Online Analytical Processing (OLAP)-Workflows entwickelt.[3][4] Das Projekt verzeichnet etwa 20 Millionen Downloads pro Monat.[5]
Remove ads
Geschichte
Duckdb wurde ursprünglich von Mark Raasveldt, einen Doktoranden und seinem Betreuer Hannes Mühleisen am Centrum Wiskunde & Informatica (CWI) in den Niederlanden entwickelt. Die Erstveröffentlichung erfolgte 2019, die erste stabile Version folgte 1.0.0 am 2. Juni 2024.
Eigenschaften und Funktionen
Zusammenfassung
Kontext
DuckDB ist analog zu SQLite als eingebettete Datenbank konzipiert und weist keine externen Abhängigkeiten auf und kann mit einem C++11-Compiler aus dem Sourcecode erstellt werden. Installationspakete werden für die Programmiersprachen C/C++, Rust, Python, R, Java, Go und Node.js angeboten. Zusätzlich werden tertiäre Bibliotheken zur Einbindung der Datenbank für eine Reihe weiterer Programmiersprachen bereitgestellt.[6]
Zusätzlich zur Verwendung als eingebettete Datenbank, steht auch eine Commandline-Anwendung für die Betriebssysteme Linux, macOS und Windows zur Verfügung.
Der von DuckDB verwendete SQL-Dialekt baut auf PostgreSQL auf, denn der SQL-Parser wurde auf Basis der von Lukas Fittl erstellten pg_query Bibliothek entwickelt.[7] Der DuckDB SQL-Dialekt enthält eine Reihe zusätzlicher Funktionen speziell für analytische Datenauswertungen.[3] Der Funktionsumfang der Basisanwendung lässt sich mit Extensions erweitern.[8]
DuckDB verwendet eine spaltenorientierte, vektorisierte Abfrage-Ausführung, bei der Abfragen weiterhin interpretiert werden, aber eine große Menge von Werten als Vektor in einem einzigen Vorgang verarbeitet werden. Der reduzierte Overhead gegenüber OLTP-Datenbanken führt zu einer deutlich besseren Leistung bei OLAP-Abfragen bei gleichzeitig sparsamen Speicher-Einsatz im Vergleich zu just-in-Time kompilierenden Ausführungs-Engines.[9][10]
DuckDB verwendet ein Einzel-File-Speicherformat, erlaubt aber auch die direkte Abfrage von anderen Datenquellen, wie beispielsweise CSV, Apache Parquet, JSON, SQLite, PostgreSQL, Data Lake, Apache Arrow oder Apache Iceberg.[11]
Remove ads
Extensions
DuckDB verfügt über einen flexiblen Erweiterungsmechanismus. DuckDB liefert eine Reihe an Core-Extensions automatisch mit, die mit dem INSTALL-Befehl aktiviert werden. Mit Extensions können zusätzliche File-Formate verwendet werden, zusätzliche Datentypen verwendet, der Funktionsumfang erweitert werden.
Beispiele zu Core-Extensions
uierstellt ein graphisches User-Interface über den Web-Browser
Screenshot zu DuckDB UI geöffnet in Mozilla Firefox postgres,mysql,sqliteerlauben die Zugriff auf externe Datenbankenducklackerstellt eine offene und eigenständige Data Lake Anwendung des DuckDB-Projektes. DuckLake bietet Data-Lake-Funktionen ohne die Komplexität herkömmlicher Lakehouses. Es verwendet es Parquet-Dateien für Datenspeicherung. Die Metadaten-Verwaltung erfolgt in einer zentralen SQL-Datenbank wie PostgreSQL. Für einfache Use Case reicht auch DuckDB selbst als Metadaten-Datenbank.[12]
DuckDB Foundation
Die DuckDB Foundation ist eine unabhängige gemeinnützige Stiftung zur langfristigen Wartung und Weiterentwicklung von DuckDB. Die durch Spenden finanzierte Stiftung besitzt einen Großteil der geistigen Eigentumsrechte des Projekts. Die Satzung der DuckDB Foundation garantiert, dass DuckDB unter der open-source MIT-Lizenz verfügbar bleibt.
Weblinks
Commons: DuckDB – Sammlung von Bildern, Videos und Audiodateien
- Mark Raasveldt: In-Process Analytical Database System (Youtube) Slides (PDF) Kurs an der Carnegie Mellon University
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads

