DuckDB
An embedded, in-process analytical (OLAP) database — a library that runs inside your application on a single machine, with no server to deploy or operate (“the SQLite for analytics”). The embedded end of the analytical-databases spectrum.
Profile
- In-process, single-machine, zero-ops — file-based, embedded in the host process; batch loading rather than continuous streaming (tinybird-clickhouse-vs-duckdb).
- Scales vertically only (bigger box), not horizontally across nodes — so its ceiling is one machine’s capacity (posthog-duckdb-vs-clickhouse). In practice strong up to ~100 GB and capable of real heft on a laptop: ~1B rows / ~50 GB on a 16 GB MacBook, and TPC-H in ~1m16s where a 32-node Spark cluster took ~8 min (tinybird-clickhouse-vs-duckdb, vendor figures).
- Where it fits: notebooks, exploratory/data-science workflows, dev/prototyping, edge analytics, and — per posthog-duckdb-vs-clickhouse — per-customer data warehousing, where its embeddable, lightweight nature lets each tenant get an isolated engine.
In practice (PostHog)
PostHog uses DuckDB for their managed data-warehouse product, wrapping it in Duckgres (a Postgres-compatible server) so standard BI tools and dbt connect, and pointing each process at independent storage (DuckLake + a Postgres catalog) to decouple compute from storage — working around DuckDB’s embedded, single-node nature to make it a multi-tenant service (posthog-duckdb-vs-clickhouse).
Related
clickhouse · analytical-databases · tinybird · posthog-duckdb-vs-clickhouse · synthesis