pg_lake turns PostgreSQL into a lakehouse by integrating Apache Iceberg and data lake file formats (Parquet, CSV, JSON) directly into PostgreSQL. Users connect only to PostgreSQL — the extensions transparently delegate data scanning and computation to pgduck_server (a standalone process backed by DuckDB) while PostgreSQL handles query planning, transaction boundaries, and Iceberg metadata management.
graph LR
Client["Client (psql, app)"]
PG["PostgreSQL+ pg_lake extensions"]