作者
digoal
日期
2021-03-25
标签
PostgreSQL , citus , sharding
背景
https://github.com/citusdata/citus
https://www.citusdata.com/
功能和优劣势
这个产品主打的是实时HTAP场景, 接入层coordinator可横向扩展, 计算和存储层datanode也可以横向扩展, datanode层支持内部Shuffle.
同基于PG-XC架构的tbase, antdb, opengauss分布式版本等产品相比:
citus优势是,
- 它只是个插件, 可以跟随PG大版本升级一起升, 轻量化, 维护简单.
同greenplum这个PG系列AP的老大哥相比:
citus优势是,
- 接入层可横向扩展, 实时写入不存在问题, TP能力明显强于greenplum.
citus弱点是,
- Shuffle没有greenplum彻底.
- 语法支持没有antdb,tbase等兼容性好.
- 存储层面靠PG原生, 没有greenplum的列存储, AP性能相对GP更弱. (PS: citus 10.x 发布了列存支持. 基于PG tableaccessmethod api的列存储引擎, 使得HTAP场景的分析能力有较大提升.)
同shardingsphere这种中间件相比:
- citus的优势是, 使用门槛低, 对业务透明.
- citus的弱势是, TP性能没有shardingsphere这种中间件好, 因为shardingsphere可以做到LIB层, RT无损.
客户和场景
国内比较大的citus客户: xx306, 苏宁. 主要用在一些数据集中式的业务系统, 替代DB2, Sybase.
citus 除了通用HTAP场景, 其他相关的应用场景包括 : IoT, SaaS多租户场景.
暂未大面积流行原因
citus未大面积流行的原因:
1、citus 10.x发布以前, rebalance是未包含在开源版本里面, 集群扩缩容门槛较高, 也是导致开源版本使用率不是特别高的原因之一, 苏宁自己研发了一个扩缩容插件并开源. citus估计看到了这个问题10.x就把rebalance开源了.
2、被微软收购以及它的AGPL开源许可导致云厂商未跟进, 也是市场没有铺开的原因之一.
3、PG社区一直在主导基于fdw的sharding方案 (https://wiki.postgresql.org/wiki/WIP_PostgreSQL_Sharding),
支持fdw sharding的企业包括:
- EnterpriseDB
- NTT
- Postgres Professional
- HighGo Software Inc
- 2ndQuadrant
- NTT Data
- Fujitsu
社区一直在完善sharding相关优化器能力,
目前已经支持了:
条件、排序、聚合、DML、JOIN下推, FDW分区, FDW分区表感知JOIN、FDW异步并行计算、batch(bulk) insert操作.
暂未支持:
2阶段、全局snapshot、Shuffle, rebalance, 便捷的扩缩容管理. 但是对PG用户选择sharding方案也会造成一些影响.
一句话小结
citus 目前依旧不失为PG系列比较成熟的实时HTAP方案.
PostgreSQL 许愿链接
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.
9.9元购买3个月阿里云RDS PostgreSQL实例
PostgreSQL 解决方案集合
德哥 / digoal's github - 公益是一辈子的事.





