Weiter zum Inhalt

Eine Einführung in DuckDB: Was ist es und warum solltest du es nutzen?

Lerne DuckDB kennen – die schnelle, einfach zu bedienende Analytics-Datenbank für Python und R. Entdecke zentrale Features, Einsatzszenarien und wie sie Datenanalyse-Aufgaben beschleunigt.
Aktualisiert 18. Sept. 2026  · 7 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

In der Datenwissenschaft und Analytics besteht der Weg zu Erkenntnissen oft aus mehreren Schritten, die typischerweise in Python mit Bibliotheken wie pandas ausgeführt werden. So mächtig pandas auch ist, bei sehr großen Datensätzen und ressourcenintensiven Operationen stößt es mitunter an Leistungsgrenzen.

Wenn du robuste Funktionen mit hoher Effizienz verbinden willst, ist DuckDB eine hervorragende Alternative. Als schnelle, benutzerfreundliche Analytics-Datenbank verändert DuckDB die Datenverarbeitung in Python und R.

In diesem Artikel erfährst du:

  • Welche Besonderheiten und Möglichkeiten DuckDB bietet
  • Welche Vorteile DuckDB gegenüber klassischen Tools zur Datenmanipulation hat
  • Praxisnahe Use Cases, die das Potenzial von DuckDB zeigen
  • Empfehlungen für die Arbeit mit DuckDB in Python und R

Am Ende weißt du, warum DuckDB sich für deine Datenanalyse lohnt – unabhängig von Datengröße und Komplexität der Operationen.

Was ist DuckDB?

DuckDB ist ein kostenloses, quelloffenes, eingebettetes, In-Process, relationales OLAP-Datenbankmanagementsystem (DBMS). Das sind viele Begriffe und Abkürzungen – hier die Kurzfassung:

  • In-Process bedeutet, dass die DBMS-Funktionen innerhalb der Anwendung laufen, aus der du zugreifst – nicht als externer Prozess, mit dem sich deine Anwendung verbindet.
  • OLAP heißt, die Datenbank ist auf Datenanalyse ausgelegt. Daneben gibt es OLTP-Datenbanken (OnLine Transaction Processing), die für umfangreiche Transaktionen optimiert sind.

Der Hauptunterschied zwischen OLAP und OLTP liegt in der Datenspeicherung. OLTP-Datenbanken speichern Daten meist satzorientiert und halten alle zum Datensatz gehörenden Informationen speichernah zusammen. Außerdem sind sie für effizientes Lesen und Schreiben von Zeilen optimiert.

OLAP-Datenbanken sind hingegen in der Regel spaltenorientiert. Das heißt, Daten werden spaltenweise organisiert, in der Nähe zueinander im Speicher abgelegt und die Datenbank ist fürs effiziente Lesen und Berechnen auf Spalten optimiert.

Da DuckDB eine OLAP-Datenbank ist, werden Daten spaltenorientiert gespeichert. Zusätzlich ist DuckDB darauf optimiert, komplexe Abfragen auf Daten auszuführen (z. B. Joins, Aggregationen, Gruppierungen usw.) – mehr dazu im Lernpfad SQL Fundamentals.

Wenn du SQLite kennst, kannst du dir DuckDB am einfachsten als dessen analytics-fokussiertes Pendant vorstellen. Genau das macht DuckDB so beliebt: Es vereint die Einfachheit von SQLite mit Funktionen à la Snowflake – lokal auf deinem Rechner. DuckDB schließt damit die Lücke einer eingebetteten Lösung für analytische Verarbeitung.

Zentrale Features von DuckDB

Werfen wir einen Blick auf einige der wichtigsten Funktionen.

Schnelle analytische Abfragen

DuckDB ist verblüffend schnell – überraschend für alle, die OLAP-Workloads etwa mit PostgreSQL kennen. Traditionell reagieren OLAP-Datenbanken träger, weil sie typischerweise mehr Daten verarbeiten.

DuckDB setzt jedoch auf eine spaltenbasierte, vektorisierte Abfrage-Engine. Dadurch wird der CPU-Cache effizient genutzt und Antwortzeiten für analytische Workloads werden deutlich verkürzt.

SQL-Unterstützung und Integrationen in andere Programmiersprachen

DuckDB ermöglicht komplexe SQL-Abfragen und bietet APIs für Java, C, C++ und mehr. Es ist zudem tief in Python und R integriert, sodass du interaktive Datenanalysen effizient durchführen kannst – direkt in deiner bevorzugten Sprache. Zusätzlich gibt es erweiterte SQL-Schlüsselwörter, die Abfragen vereinfachen, etwa EXCLUDE, REPLACE und ALL.

Hinweis: DuckDB hat keine externen Abhängigkeiten – Dependency-Probleme sind damit kein Thema.

Kostenlos & Open Source

DuckDB ist Open Source und hat zahlreiche aktive Contributors. So können Weiterentwicklungen und Verbesserungen schnell umgesetzt werden. Es ist aktuell kostenlos – ob das dauerhaft so bleibt, ist offen.

Einsatzszenarien für DuckDB

Die zwei häufigsten Einsatzszenarien sind interaktive Datenanalyse und Edge Computing.

Schauen wir uns beides genauer an.

Interaktive Datenanalyse

Datenanalyse beschreibt die Schritte zur Verarbeitung und Modellierung von Daten. Ziel ist es, nützliche Informationen zu gewinnen, um Schlussfolgerungen zu ziehen und datenbasierte Entscheidungen zu treffen.

Heute beschäftigen Unternehmen Data Scientists und Analystinnen/Analysten, die diese Aufgaben mit Technologien wie den Programmiersprachen Python und R übernehmen.

Für alle, die lokal lieber mit SQL arbeiten, ist DuckDB eine bessere Alternative zu SQLite, das OLAP-Workloads aufgrund fehlender Analytics-Funktionalität nur schwer bewältigt.

Edge Computing

Eingebettete Datenbanken wie DuckDB ermöglichen Analysen direkt am Rand des Netzwerks. Edge Computing ist ein aufkommendes Paradigma verteilter Datenverarbeitung und bringt Rechenleistung und Geräte näher an den Ort, an dem sie benötigt werden.

Die Verarbeitung nahe am Entstehungsort der Daten verbessert Reaktionszeiten und schont Bandbreite.

Erste Schritte mit DuckDB

Die genaue Installation hängt von deiner Umgebung ab. Die vollständige Anleitung findest du in der DuckDB-Dokumentation.

Im Kern ist es sehr unkompliziert: Weil DuckDB eingebettet ist, reichen wenige Codezeilen. Es benötigt keinen Server und hat keine externen Abhängigkeiten.

So installierst du DuckDB in Python:

pip install duckdb==0.8.0

Und in R:

install.packages("duckdb")

Schauen wir uns nun einige Codebeispiele an.

Arbeiten mit DuckDB in Python

Sobald DuckDB installiert ist, geht der Einstieg schnell. Du import duckdb in deine Umgebung und stellst dann eine Verbindung zu einer bestehenden Datenbank her oder erstellst bei Bedarf eine neue.

Beispiel:

import duckdb 
connection = duckdb.connect()

Da der Methode connect() keine Datenbankdatei übergeben wurde, wird eine neue Datenbank erstellt.

Am einfachsten startest du mit SQL-Abfragen über die Methode sql().

# Source: Basic API usage - https://duckdb.org/docs/api/python/overview.html
import duckdb
duckdb.sql('SELECT 42').show()

Dieser Befehl nutzt eine im Speicher liegende, global im Python-Modul verfügbare Datenbank und gibt eine Relation zurück – also eine symbolische Darstellung der Abfrage.

Beachte: Die Abfrage wird erst ausgeführt, wenn das Ergebnis explizit angefordert wird, zum Beispiel so:

# Source: Execute SQL - https://duckdb.org/docs/guides/python/execute_sql.html
results = duckdb.sql('SELECT 42').fetchall()
print(results)

"""
[(42,)]
"""

Mit der Methode df() kannst du die Daten auch in ein Pandas-DataFrame umwandeln:

results_df = duckdb.sql('SELECT 42').df()
print(results) 

"""
    42
0   42
"""

Oder du nutzt eine der vielen Ingestion-Methoden, um Daten in den Speicher zu laden:

# Source: Python API - https://duckdb.org/docs/api/python/overview.html 
import duckdb
duckdb.read_csv('example.csv') # liest eine CSV-Datei als Relation ein
duckdb.read_parquet('example.parquet')# liest eine Parquet-Datei als Relation ein
duckdb.read_json('example.json') # liest eine JSON-Datei als Relation ein

duckdb.sql('SELECT * FROM "example.csv"')     # CSV-Datei direkt per SQL abfragen

Wichtig: Wenn du die Methode sql() ohne vorherige Verbindung zu einer bestehenden Datenbank nutzt, gehen alle in Dateien gehaltenen Daten nach dem Beenden des Programms verloren. Vermeide das, indem du – wie eingangs gezeigt – mit connect() eine Verbindung herstellst.

Fazit und weiterführende Ressourcen

DuckDB ist eine OLAP-Datenbank, die von Data-Profis wie Data Scientists und Analystinnen/Analysten genutzt wird, um Daten schnell und effizient zu analysieren. Sie setzt auf eine SQL-Abfrage-Engine, die komplexe Abfragen auf großen Datensätzen performant ausführt.

Zudem lässt sich DuckDB aus vielen Programmiersprachen ansprechen – du bleibst also in deinem bevorzugten Toolset.

Wenn du weitermachen willst, sieh dir das SQL Basics Cheat Sheet an und lies, wie DuckDB SQL in DataLab zum First-Class Citizen gemacht hat.


Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Themen
Datenwissenschaft