finds.dev← search

// the find

Mooncake-Labs/pg_mooncake

★ 1,975 · Rust · MIT · updated Mar 2026

Real-time analytics on Postgres tables

pg_mooncake is a Postgres extension that keeps a columnstore copy of your tables in Iceberg format, then routes analytic queries through DuckDB for columnar performance. It's aimed at teams who want OLAP speed without leaving Postgres or standing up a separate data warehouse. The Iceberg output means other engines (Spark, Trino, etc.) can read the same data.

Top-10 ClickBench placement is a real, externally verifiable claim — not marketing fluff. The mirroring model (write to normal table, query the columnstore) keeps OLTP workloads unaffected and gives you a clean separation without schema changes. Building on pg_duckdb and pgrx rather than reinventing columnar execution is the right call — the hard parts are delegated to projects with much larger teams. Iceberg as the storage format is a strong choice: you get time travel, schema evolution, and interoperability with the broader lakehouse ecosystem for free.

Requires `wal_level = logical` and two extensions loaded at startup (`pg_duckdb` + `pg_mooncake`), which is a non-trivial ask on managed Postgres — this won't work on RDS without jumping through hoops, and some cloud providers don't expose these settings at all. The build-from-source path is genuinely painful: you need Rust, pgrx, DuckDB build tools, and submodules, which means the Docker path is basically mandatory for evaluation. Last push was March 2026 on a ~2k star repo, which suggests the project may be slowing down or the team is heads-down on something not reflected in commits. The test suite is very thin — two pg_regress scripts with trivial sanity checks; there's nothing testing replication edge cases, DDL changes on the source table, or failure recovery.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →