PostgreSQL or DuckDB?

Choosing Between PostgreSQL and DuckDB for a Task

The engines complement each other more often than they compete. Choose by workload:

PostgreSQL 1,289 or DuckDB 61,228 , task by task
Task Choose Why
Application backend, many users PostgreSQL Concurrent writers, row locks, constraints
Point lookups, many small writes PostgreSQL B-tree indexes, sub-millisecond reads
Ad hoc analysis on a laptop DuckDB No server; 10-30x faster scans here
Querying Parquet 129 , CSV, JSON in place DuckDB Readers and pushdown built in
Pipeline transformation steps DuckDB In-process, fast, files in and out
Shared dashboards on fresh OLTP data PostgreSQL Matviews (Views, Partitions, Parallelism), one source
Data beyond one machine Neither Warehouse or lakehouse (Cloud Data Warehouses, Lakehouses, Data Quality and Governance)

For BookNest, orders stay in PostgreSQL, where the shop writes them; the sales mart built from them is analyzed in DuckDB files or Parquet, with PostgreSQL materialized views for minutes-fresh dashboards. Transforming Data with dbt builds the mart with dbt 37,942 on both engines; ClickHouse adds ClickHouse 29,491 .