pg_lake
activeby Snowflake (Snowflake Labs) · since 2025 · also known as pg_lake extensions, Crunchy Data Warehouse
Postgres extensions from Snowflake that read and write Iceberg tables and lake files, executed via DuckDB.
Overview
pg_lake is a set of PostgreSQL extensions, open-sourced by Snowflake in November 2025 from the Crunchy Data Warehouse it acquired, that turns Postgres into a small lakehouse. You can create transactional Iceberg tables with CREATE TABLE ... USING iceberg, query Parquet, CSV, JSON and GDAL geospatial files on S3 as foreign tables, and COPY results back to object storage, mixing heap and lake tables in one transaction. Heavy scans are delegated to a companion pgduck_server process running DuckDB. It is a practical way to give Postgres-centric teams Iceberg access; it is young and adds an extra server process to operate.
Strengths & trade-offs
Strengths
- +Transactional Iceberg tables created and modified with plain Postgres SQL
- +Query and COPY Parquet, CSV, JSON and geospatial files on S3
- +DuckDB-powered execution for fast analytical scans
- +Mix heap and Iceberg tables in one transaction
- +Apache-2.0 and backed by Snowflake
Trade-offs
- −Young project with a short track record
- −Requires running and securing the extra pgduck_server process
- −Single-node compute; not a distributed warehouse
Great 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
Think twice for
- −Multi-terabyte distributed analytics
- −Managed services that disallow custom extensions
Capabilities
Native or official first-party support · 7 of 25 tracked
Scale & consistency
- Comfortable data size
- Medium · ≤ 10 TB
- Horizontal scaling
- None
- Multi-region
- No
- Transactions
- Full ACID
- Consistency
- Strong
- Schema
- Strict
- Architecture
- Single node, Client server
- Query languages
- SQL, PL/pgSQL
One Postgres server plus pgduck_server; data volume limited mainly by object storage and one machine's compute.
Deployment
Ecosystem
Alternatives to pg_lake
PostgreSQL extension that embeds DuckDB's vectorized engine for fast analytics and data-lake queries.
pg-lake vs pg-duckdb →Postgres extension that mirrors tables into Iceberg columnstores for real-time analytics via DuckDB.
pg-lake vs pg-mooncake →In-process columnar SQL database: the SQLite of analytics, running inside your app or notebook.
pg-lake vs duckdb →Fast distributed SQL query engine for federated analytics across lakes and databases.
pg-lake vs trino →Columnar storage extension for Postgres from Hydra; dormant after the team joined Supabase in 2026.
pg-lake vs hydra-columnar →AWS's MPP columnar data warehouse, available as provisioned RA3 clusters or Serverless.
pg-lake vs amazon-redshift →pg_lake FAQ
What is pg_lake?
pg_lake is a relational database by Snowflake (Snowflake Labs), first released in 2025. pg_lake is a set of PostgreSQL extensions, open-sourced by Snowflake in November 2025 from the Crunchy Data Warehouse it acquired, that turns Postgres into a small lakehouse. You can create transactional Iceberg tables with CREATE TABLE ... USING iceberg, query Parquet, CSV, JSON and GDAL geospatial files on S3 as foreign tables, and COPY results back to object storage, mixing heap and lake tables in one transaction. Heavy scans are delegated to a companion pgduck_server process running DuckDB. It is a practical way to give Postgres-centric teams Iceberg access; it is young and adds an extra server process to operate.
Is pg_lake open source?
Yes. pg_lake is open source. License: Apache License 2.0.
Does pg_lake support ACID transactions?
Yes. pg_lake supports full ACID transactions, with strong consistency.
Does pg_lake scale horizontally?
pg_lake does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at medium scale (≤ 10 TB).
How can I run pg_lake?
You can self-host it.
What is pg_lake best for?
pg_lake is a strong fit for giving Postgres apps access to an Iceberg lake, exporting Postgres data to Parquet/Iceberg and small lakehouse on Postgres. Think twice for multi-terabyte distributed analytics.
What are the best alternatives to pg_lake?
Common alternatives to pg_lake include pg_duckdb, pg_mooncake, DuckDB, Trino and Hydra. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.
How popular is pg_lake?
pg_lake ranks #220 of 844 databases on the WhichDB Score (15.2/100), and #66 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.