fairlane.systems

DUCKDB · TECH

DuckDB: embedded columnar OLAP-Datenbank für lokale Datenanalyse

DuckDB 1.x ist im Mai 2026 stabil. MIT-Lizenz, embedded, columnar, perfekt für Datenanalyse lokal -- Pandas-Ersatz und Treuhand-Reporting-Tool.

Recherche & Faktencheck: · Stand: 2026-05

Was ist DuckDB?

DuckDB ist eine embedded columnar OLAP-Datenbank, entwickelt seit 2018 von Mark Raasveldt und Hannes Mühleisen am CWI (Centrum Wiskunde & Informatica) in Amsterdam. Inspiriert von SQLite (single-file, no server), aber columnar statt row-orientiert -- der Vergleich "SQLite für Analytics" trifft den Kern. Im Mai 2026 ist Version 1.2 stabil mit verbesserter Apache Arrow-Integration, Vector-Search-Extension und Parquet-Compression-Optimierungen.

Lizenz: MIT, vollständig Open Source, keine Lizenz-Themen. DuckDB Labs (gegründet 2021) bietet kommerziellen Support und MotherDuck (managed DuckDB Cloud) als Hosting-Option, aber der Kern bleibt MIT-OSS ohne Open-Core-Modell.

DuckDB läuft als Library in Python, Node, R, Rust, Java, Go, C++. Eine DuckDB-Datenbank ist eine Datei (.duckdb-Endung) oder in-memory. Im Gegensatz zu ClickHouse braucht DuckDB keinen Server -- es ist eingebettet in der Anwendung, wie SQLite. Im Gegensatz zu SQLite ist es columnar und optimiert auf Analytical-Queries -- 50-100x schneller als SQLite bei Aggregaten.

DuckDB-Killer-Feature: Reading External Data Formats. Eine DuckDB-Query kann direkt auf CSV, Parquet, JSON, Arrow, Iceberg, Delta Lake-Dateien arbeiten -- lokal auf Disk oder über HTTP/S3-Pfade. SELECT * FROM 'https://example.com/data.parquet' funktioniert ohne Vorab-Import. Damit wird DuckDB zur perfekten Analyse-Schicht über bestehende Daten-Lakes oder S3-basierte Daten.

In unserem Stack nutzen wir DuckDB für ad-hoc-Analytics über Treuhand-Mandanten-Snapshots (Postgres-Export als Parquet -> DuckDB-Query), für Log-Analyse (Loki-Export als JSON -> DuckDB), und für Pandas-Replacement in Python-Skripten (100x schneller bei grösseren Daten). Im Mai 2026 ist DuckDB die de-facto-Standard-Library für lokale Daten-Analyse.

Warum es wichtig ist

DuckDB hat im Mai 2026 eine Lucke besetzt, die zwischen SQLite (zu klein/zu langsam für Analytics) und ClickHouse (zu gross/Server-basiert) klaffte. Drei Gründe, warum DuckDB im CH-KMU-Treuhand-Kontext relevant ist.

Erstens: lokale Datenanalyse ohne Server-Aufwand. Ein Treuhand-Analyst will den Buchungs-Daten-Snapshot eines Mandanten (5 GB CSV oder Parquet) analysieren -- häufige Buchungs-Konten, monatliche Trends, Anomalie-Erkennung. Mit Pandas und 5 GB Daten kämpft man mit OOM-Errors auf einem 16-GB-Laptop. Mit DuckDB in Python: SELECT-Statements über die gleichen 5 GB in Sekunden, ohne Out-of-Memory.

Zweitens: Direkter Zugriff auf Cloud-Daten ohne ETL. SELECT * FROM 's3://bucket/treuhand-export.parquet' WHERE buchungs_konto = 1000 -- DuckDB liest direkt aus S3, ohne Vorab-Import. Damit wird ein Treuhand-Datenwarehouse ohne Daten-Bewegung möglich: Daten liegen in Hetzner Storage Box als Parquet, Queries laufen lokal aus DuckDB.

Drittens: Pandas-Replacement in Python-Pipelines. Pandas ist ein Industrie-Standard, aber 1) Single-Threaded, 2) RAM-hungrig, 3) bei > 1 GB Daten oft unpraktisch. DuckDB ist Multi-Threaded, RAM-effizient (kann auf Disk spillen) und 5-50x schneller bei Standard-Analyse-Workloads. Ein Pandas-DataFrame ist 1:1 austauschbar mit einer DuckDB-Tabelle via Arrow-Format.

Für welche Fälle ist DuckDB NICHT gedacht? Als Production-DB für Web-Anwendungen (das ist Postgres-Job). Als Multi-User-Server (DuckDB ist embedded, ein File-Lock pro Schreiber). Als Cluster für riesige Daten über 100 GB (das ist ClickHouse-Territorium). DuckDB ist ein Analyse-Werkzeug, kein Operational-Store.

Im Mai 2026 ist DuckDB in vielen Data-Science-Stacks Pflicht: Apache Airflow, dbt, Dagster, Streamlit-Apps haben native DuckDB-Integration. MotherDuck (DuckDB Cloud) ist als Option für geteilte DuckDB-Datenbanken verfügbar -- relevant für Teams, die DuckDB-Workflows über mehrere Analysten teilen wollen.

Wie es funktioniert

DuckDB ist eine in C++ geschriebene Library mit Bindings für alle gängigen Sprachen. Der einfachste Use-Case in Python:

import duckdb

# In-Memory-Query auf einer CSV result = duckdb.sql(""" SELECT buchungs_konto, count() AS n, sum(betrag) AS total FROM '/data/buchungen.csv' WHERE jahr = 2025 GROUP BY buchungs_konto ORDER BY total DESC LIMIT 20 """) result.show()

# Pandas-Integration import pandas as pd df = pd.read_csv('/data/mandanten.csv') result = duckdb.sql("SELECT * FROM df WHERE branche = 'Treuhand'").fetchdf()

Die Query-Engine ist Vectorized Execution -- Operations werden auf Batches von tausenden Zeilen gleichzeitig ausgeführt, was moderne CPU-SIMD-Instruktionen optimal nutzt. Compression ist columnar-typisch effizient (10-30x bei realistischen Daten).

DuckDB unterstützt persistent Files (.duckdb) mit ACID-Transaktionen, oder in-memory. Eine .duckdb-Datei kann mehrere Tabellen, Views und Schemas enthalten. Schema-Evolution ist via ALTER TABLE möglich, aber DuckDB ist primär auf Read-Heavy-Workloads optimiert -- häufige Updates und Deletes auf grossen Tabellen sind nicht der Sweet-Spot.

External Data Access:

# Direkter Parquet-Read aus S3 (mit httpfs Extension) INSTALL httpfs; LOAD httpfs; SELECT * FROM 's3://bucket/data.parquet' LIMIT 100;

# JSON-Read mit Schema-Inferenz SELECT * FROM read_json_auto('log.jsonl');

# Iceberg-Tabellen lesen INSTALL iceberg; LOAD iceberg; SELECT * FROM iceberg_scan('s3://bucket/iceberg-table/');

Extensions im Mai 2026: httpfs (S3/HTTP), parquet, json, vss (Vector Similarity Search), spatial (Geo), iceberg (Apache Iceberg), delta (Delta Lake), postgres_scanner (live Read aus Postgres), mysql_scanner.

Multi-Threading ist standardmässig aktiv, DuckDB nutzt alle verfügbaren CPU-Cores. Auf einem 8-Core-Laptop laufen Aggregat-Queries über 10 GB Parquet typisch in 1-5 Sekunden.

MotherDuck als Cloud-Variante: DuckDB-Datenbanken werden in der Cloud gehostet, lokale Clients können Queries an die Cloud schicken und Ergebnisse lokal verarbeiten. Hybrid-Modus: ein Teil der Daten in der Cloud, ein Teil lokal. EU-Region verfügbar.

DuckDB in 5 Schritten produktiv

  1. 01Use-Case validieren: ist es Analyse (read-heavy, Aggregate) oder OLTP (write-heavy)? Bei OLTP -> SQLite oder Postgres. Bei Analyse -> DuckDB.
  2. 02DuckDB als Library installieren: pip install duckdb (Python), npm install @duckdb/duckdb (Node), CRAN-Paket (R). Embedded-Mode genügt für 90 Prozent der Fälle.
  3. 03Daten-Pipeline: Postgres/MySQL/CSV/Parquet -> DuckDB-Tabelle. Bei wiederkehrenden Analysen einen Snapshot als .duckdb-Datei persistieren.
  4. 04Queries entwickeln: SQL-Standard, Vektor-Execution macht Aggregate sehr schnell. WITH-CTEs und Window-Functions voll unterstützt. Visualisierung via Streamlit, Dash oder Jupyter.
  5. 05Sharing-Strategie: bei Multi-Analysten-Teams MotherDuck prüfen (EU-Region verfügbar), oder DuckDB-Files in S3/Storage-Box mit Read-Only-Sync.

Wann DuckDB einsetzen

Die richtige Wahl, wenn (a) Datenanalyse lokal ohne Server-Aufwand laufen soll, (b) Pandas an seine Grenzen kommt (RAM, Single-Threading), oder (c) Daten in S3-Parquet, CSV oder JSON liegen und direkt abgefragt werden sollen.

Konkrete Szenarien: Treuhand-Reporting über Mandanten-Buchungs-Snapshots (Postgres-Export als Parquet, DuckDB-Query lokal), Log-Analyse aus Loki-Export, Web-Analytics-Snapshots für ad-hoc-Reports, KPI-Dashboards in Streamlit mit DuckDB als Engine, Datenqualitäts-Prüfungen über CSV-Importe, Pandas-Replacement in Python-ETL-Pipelines.

Neue 2026er-Use-Cases: dbt mit DuckDB als Compute-Engine (statt Snowflake/BigQuery für kleine Teams), Dagster/Airflow-Tasks mit DuckDB-Transformations, KI-Datenvorbereitung (Embedding-Datensätze, RAG-Source-Files in DuckDB-Tabelle plus VSS-Extension für Search).

MotherDuck (DuckDB Cloud) ist attraktiv für Teams, die DuckDB-Workflows teilen wollen: gemeinsame Daten-Layer in der Cloud, lokale Query-Performance, EU-Region. Self-Host bleibt für reine lokale Analysen Standard -- keine Cloud nötig.

Für Excel-Power-User: DuckDB ist die natürliche Nächste-Schritt-Tech. Wer in Excel 1 Million Zeilen verarbeitet und an Performance-Grenzen stösst, kann denselben Workflow in DuckDB mit 100 Millionen Zeilen weiter machen -- SQL-ähnliche Sprache, vergleichbares Mental-Modell.

Wann NICHT

Niemals als Production-DB für Web-Anwendungen mit mehreren Anwendern. DuckDB ist embedded und Single-Writer -- ein File-Lock pro Schreib-Prozess. Wer Multi-User-Anwendungen baut, gehört in Postgres oder ClickHouse.

Für hochfrequente OLTP-Workloads (häufige Einzel-INSERT-UPDATE-DELETE) ist DuckDB nicht optimiert. Schreib-Operationen sind langsamer als bei SQLite, da das columnar-Format Reorganisation bei jedem Schreib-Vorgang braucht. DuckDB ist auf Read-Heavy-Analytics gebaut.

Für wirklich grosse Daten (> 100 GB pro Datenbank) wird DuckDB unhandlich. ClickHouse mit Cluster-Setup ist hier richtig. DuckDB ist auf Single-Node-Analyse von 1-100 GB Daten optimal -- darüber hinaus lohnt ein Server-basiertes System.

Für Echtzeit-Daten-Pipelines mit kontinuierlichen Updates ist DuckDB nicht das richtige Werkzeug. DuckDB ist auf Batch-Loads optimiert -- Daten kommen einmal, werden viele Male abgefragt. Realtime-Streaming gehört in ClickHouse oder Kafka + ClickHouse.

Für Multi-User-Sharing ohne MotherDuck: lokale DuckDB-Files sind nicht netzwerk-share-fest. Wenn mehrere Analysten gleichzeitig auf eine .duckdb-Datei zugreifen sollen, braucht es MotherDuck oder eine andere Sharing-Schicht.

Vor- und Nachteile

STÄRKEN

  • MIT-Lizenz, vollständig Open Source, kein Open-Core-Modell
  • Embedded ohne Server, eine .duckdb-Datei oder in-memory
  • 50-100x schneller als Pandas/SQLite bei Aggregat-Workloads
  • Direkter Read auf CSV/Parquet/JSON/Iceberg ohne Vorab-Import
  • Multi-Threading und Vectorized Execution out of the box

SCHWÄCHEN

  • Nicht für Multi-User-Production-Apps geeignet (embedded, Single-Writer)
  • Nicht für hochfrequente OLTP (häufige Einzel-Writes langsam)
  • Kein nativer Replikations- oder Cluster-Modus (MotherDuck als Workaround)
  • Skaliert nicht über 100 GB pro Datenbank optimal
  • Sharing zwischen Analysten benötigt MotherDuck oder externe Sync-Lösung

Häufige Fragen

DuckDB oder Pandas in Python 2026?

Bei < 100 MB Daten: Pandas, ist immer noch ergonomisch und schnell genug. Ab 1 GB Daten: DuckDB, deutlich schneller und nicht durch RAM begrenzt (kann auf Disk spillen). DuckDB-Pandas-Interop über Arrow ist direkt -- man kann beide kombinieren.

DuckDB oder ClickHouse für ein KMU?

Bei lokaler Analyse für 1-5 Analysten ohne Multi-User-Concurrent-Access: DuckDB. Embedded, MIT-Lizenz, null Server-Aufwand. Bei Multi-User-Analytics-Server für 10+ Anwender oder Streaming-Daten: ClickHouse. DuckDB ergänzt ClickHouse oft -- ClickHouse als Server-Store, DuckDB-Snapshots für ad-hoc-Analysen.

Kann DuckDB direkt auf Hetzner Storage Box lesen?

Ja, mit httpfs-Extension. Storage Box hat S3-kompatible Endpoints (über rclone oder direct S3-Gateway). SELECT * FROM 's3://bucket/data.parquet' funktioniert mit korrekt gesetzten S3-Credentials. Damit wird die Storage Box zum Data-Lake für DuckDB-Analysen.

Was bringt MotherDuck im Vergleich zu lokalem DuckDB?

Cloud-Hosting für geteilte DuckDB-Datenbanken, EU-Region verfügbar. Hybrid-Modus lässt lokale Queries auf Cloud-Daten zugreifen mit Caching. Sinnvoll für 5+ Analysten, die geteilte Daten brauchen. Bei Single-Analyst oder kleinem Team reicht lokales DuckDB ohne Cloud.

Verwandte Themen

DB-VERGLEICH · TOOL-VERGLEICHDatenbanken im Vergleich: PostgreSQL, MySQL/MariaDB, SQLite, MongoDB, Redis, ClickHouse, CockroachDB, SurrealDB, DuckDB, SupabasePOSTGRESQL · TECHPostgreSQL: relationale Standard-Datenbank für CH-KMU und KI-StacksCLICKHOUSE · TECHClickHouse: columnar-Analytics-Datenbank für Aggregate über Milliarden ZeilenSQLITE · TECHSQLite: die Einzeldatei-Datenbank für Single-Tenant, Mobile und EdgeHETZNER · TECHHetzner als EU-Hosting für CH-Treuhand und KMU: Rechenzentren, Verträge, KostenBACKUP · SICHERHEITBackup-Strategien 3-2-1 und 3-2-1-1-0: So sichern Sie ein KMU revisionsfest

Quellen

  1. DuckDB 1.2 release notes · 2026-05
  2. DuckDB documentation - extensions and SQL · 2026-05
  3. DuckDB MIT License · 2026-05
  4. MotherDuck Cloud pricing and EU region · 2026-05

PASSEND ZU IHREM STACK?

Wie das in Ihrem Betrieb konkret aussieht – 30 Minuten Erstgespräch.

Erstgespräch buchen