vs

pg_duckdb vs pg_lake

pg_duckdb: PostgreSQL extension that embeds DuckDB's vectorized engine for fast analytics and data-lake queries. pg_lake: Postgres extensions from Snowflake that read and write Iceberg tables and lake files, executed via DuckDB.

key differences

  • Only pg_duckdb has secondary indexes.
  • Only pg_lake has geospatial.

choose pg-duckdb for

  • +Dashboards and reports directly on Postgres data
  • +Joining Postgres tables with Parquet/Iceberg data in S3
  • +Exporting query results to Parquet for data lakes
  • +Ad-hoc analytics without standing up a warehouse

best at · OLAP, Real-time analytics, Lakehouse

choose pg-lake for

  • +Giving Postgres apps access to an Iceberg lake
  • +Exporting Postgres data to Parquet/Iceberg
  • +Small lakehouse on Postgres
  • +Querying raw files in S3 from SQL

best at · Lakehouse, OLAP, Warehouse

overview
Primary model
Relational
Relational
Also supports
Columnar / OLAP
Columnar / OLAP, Spatial
Type
Extension
Extension
Status
Active
Active
Developer
DuckDB Labs, MotherDuck and Hydra
Snowflake (Snowflake Labs)
First release
2024
2025
Latest version
1.1.1 (Dec 18, 2025)
3.5.9 (Oct 25, 2026)
License
Open source (permissive)MIT License
Open source (permissive)Apache License 2.0
Free tier
✓
✓
popularity
WhichDB Score
14.9
15.2
Rank
#226
#220
GitHub stars
3.3K
1.7K
Stack Overflow questions
–
–
scale & guarantees
Comfortable data size
Medium (≤ 10 TB)
Medium (≤ 10 TB)
Horizontal scaling
None
None
Multi-region
None
None
ACID
Full
Full
Consistency
Strong
Strong
Schema
Strict
Strict
Architecture
Single node, Embedded
Single node, Client server
deployment
Self-hosted
✓
✓
Vendor-managed cloud
—
—
Serverless
—
—
Embedded
—
—
Edge
—
—
Clouds
–
–
capabilities
Transactions
✓
✓
Joins
✓
✓
Secondary indexes
✓
—
Full-text search
—
—
Vector search
—
—
Geospatial
—
✓
JSON
✓
✓
Change data capture
—
—
Triggers
—
—
Stored procedures
—
—
Materialized views
—
—
TTL / expiry
—
—
Pub/Sub
—
—
Columnar storage
✓
✓
In-memory
—
—
Durable persistence
✓
✓
Compression
✓
✓
Encryption at rest
—
—
Role-based access
—
—
Time travel
—
—
Branching
—
—
Online schema changes
—
—
Streaming ingest
—
—
Offline sync
—
—
Runs in WebAssembly
—
—
interfaces
Query languages
SQL
SQL, PL/pgSQL
Client languages
C, Java, Python, JavaScript, Go, Rust
C, Java, Python, JavaScript, Go
Best for
OLAP, Real-time analytics, Lakehouse, HTAP
Lakehouse, OLAP, Warehouse

pg_duckdb vs pg_lake: FAQ

What is the difference between pg_duckdb and pg_lake?

pg_duckdb: PostgreSQL extension that embeds DuckDB's vectorized engine for fast analytics and data-lake queries. pg_lake: Postgres extensions from Snowflake that read and write Iceberg tables and lake files, executed via DuckDB. Only pg_duckdb has secondary indexes. Only pg_lake has geospatial.

When should I choose pg_duckdb over pg_lake?

Choose pg_duckdb for dashboards and reports directly on Postgres data; joining Postgres tables with Parquet/Iceberg data in S3; and exporting query results to Parquet for data lakes. Choose pg_lake for giving Postgres apps access to an Iceberg lake, exporting Postgres data to Parquet/Iceberg and small lakehouse on Postgres.

Is pg_duckdb or pg_lake more popular?

pg_lake ranks #220 on the WhichDB Score (15.2/100) and pg_duckdb ranks #226 (14.9/100). Popularity is not fit: check the requirements that matter for your project.

Are pg_duckdb and pg_lake open source?

Yes. pg_duckdb is open source. License: MIT License. Yes. pg_lake is open source. License: Apache License 2.0.