Skip to content

Mooncake Documentation

Unified documentation hub for the PostgreSQL real-time columnstore and Apache Iceberg v2 lakehouse suite: pg_mooncake (v0.3.0), moonlink (v0.0.1), and duckdb_mooncake (v0.0.2).

Core Documentation

Explore the Mooncake architecture: how pg_mooncake, moonlink, duckdb_mooncake, and pg_duckdb 1.2.0 work together, and how v0.2 / v0.3 evolved from v0.1.

Getting StartedPG 14–18

Install pg_mooncake and pg_duckdb via Pigsty packages or build from source, run the Hello World columnstore mirror tutorial, and review known limitations.

Complete reference for mooncake.create_table, create_snapshot, optimize_table, list_tables, query shapes, Iceberg S3/R2 configuration, and external data lake scans.

Architectural patterns for real-time operational analytics (HTAP), time-partitioned table archiving, the zero-ETL Postgres lakehouse, and OpenTelemetry log analytics.

Complete historical reference archive for pg_mooncake v0.1 (USING columnstore + Delta Lake storage), preserved for legacy deployments and Wayback URL compatibility.

PGSTY community stewardship, MIT and BSL-1.1 linking exception licensing, Wayback Machine recovery provenance, and Cargo security dependency audit reports.

Component Deep Dives

Write path (Logical WAL -> Moonlink), read path (pg_duckdb -> duckdb_mooncake), and dual-format storage (in-memory Arrow + Parquet + Apache Iceberg v2).

Real-time CDC streaming, Arrow write buffers, Roaring Bitmap deletion vectors, LSN snapshot barriers, and standalone moonlink_service REST/RPC deployment.

How duckdb_mooncake v0.0.2 connects DuckDB 2.0 and pg_duckdb 1.2.0 to Moonlink metadata and performs multi-file Parquet statistics pruning.

Replicate local or remote (src_uri) PostgreSQL heap and partitioned tables into USING mooncake columnstore mirrors with CALL mooncake.create_table(...).

Configure mooncake.default_bucket for AWS S3 or Cloudflare R2, materialize snapshots with mooncake.create_snapshot, and query from external engines.

Query external Parquet, CSV, JSON, Apache Iceberg, Delta Lake, and HuggingFace datasets directly inside PostgreSQL and join them with heap tables.