the easiest way to Analytics in Postgres: pg_mooncake v0.1
We announced pg_mooncake to the world on Day 60.
Today, Day 131, pg_mooncake comes out of beta.
pg_mooncake wins on ease and performance. So, we doubled down for v0.1. That’s it.
The Easiest Way to Fast Analytics in Postgres
With a native columnstore table in Postgres, pg_mooncake brings familiar table semantics to way you run analytics. Columnstore tables support transactional operations like inserts, select, update, delete, and copy, alongside joins with regular Postgres heap tables.
In v0.1, we’ve made it even easier to load data into columnstore tables:
1. From Parquet, CSV, and JSON files:
mooncake.read_parquet('<file_path>')
2. From Hugging Face datasets:
COPY reddit_comments FROM 'hf://datasets/fddemarco/pushshift-reddit-comments/data/RC_2012-01.parquet';
3.From existing Iceberg and Delta Lake tables
mooncake.iceberg_scan('s3://bucket/table')
Better performance for time-series workloads.
pg_mooncake is the only Postgres extension that adds columnar storage and vectorized execution.
In V0.1, we added file statistics and skipping. Customers run time-series and analytics workloads without traditional sharding.
Our ClickBench results land next week. (Hint: top 10 🙂). Perhaps Postgres is indeed a Great Real-Time Analytics Database.
Looking Ahead to v0.2
We will double down on two areas: DevEx and time-series workloads. Planned improvements include:
- Enhanced support for small writes, updates, and deletes
- Syncing rowstore tables to columnstore tables
- Indexes (secondary indexes and sort keys)
- Time-series functions.
To our community, thank you.
It takes a village. Thank you to our community, customers, contributors, and Postgres partners like Neon and Supabase. Your support has been invaluable.
Our favorite metrics is the number contributors to pg_mooncake growing.
The momentum behind pg_mooncake is clear. Analytics in Postgres is indeed a reality 🥮