PostgreSQL码农集散地

pg_mooncake VS CrunchyData

pg_mooncake VS CrunchyData

duckdb好, 拿它+parquet文件做分析查询加速, 构建oltp数据库的数据湖架构和分析能力. 但是本地OLTP库的数据怎么从本地同步到parquet, 怎么做能更加丝滑? 低延迟? 查询更加透明?

来看看pg_mooncake 与 CrunchyData 的架构, 你喜欢谁呢? 

1、CrunchyData . Incremental Archival from Postgres to Parquet for Analytics

  • https://www.crunchydata.com/blog/incremental-archival-from-postgres-to-parquet-for-analytics

crunchydata采用传统ETL做法, 使用pg_cron定时任务, 使用pg_incremental按时间字段抽取增量数据, 使用pg_parquet将增量数据写入对象存储的parquet中.

是非常传统的ETL做法

  • 读取表带来的IO, 需要加额外的时间字段索引, 当然brin索引很小影响不会太大.
  • parquet数据有较大延时, 因为不可能做到实时.

相关的插件

  • https://github.com/CrunchyData/pg_parquet
  • https://github.com/crunchydata/pg_incremental
  • https://github.com/citusdata/pg_cron
    Image

2、pg_mooncake v0.2 roadmap 提到, columnstore 将采用logical replication同步数据到parquet, 但是为了提高性能会使用本地行存储缓冲逻辑增量, 达到一定数据量后再批量写入parquet. 在读取column table时也会自动合并本地缓冲数据和parquet两部分数据, 使得查询到的数据延迟更低.

Image

非常期待pg_mooncake v0.2

  • https://github.com/Mooncake-Labs/pg_mooncake

参考

https://github.com/Mooncake-Labs/pg_mooncake

https://www.crunchydata.com/blog/incremental-archival-from-postgres-to-parquet-for-analytics