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