架构
架构图
master: 主节点,一般称作协调器,存储数据分布相关的元数据信息
worker: 存储分片表的分片数据。可以为分片表的每一个分片创建多个副本
客户端访问数据时只和master节点交互。master收到请求后,会生成分布式执行计划,并将各个子任务下发到相应的worker节点执行,之后由master收集各worker的结果并处理后返回最终结果给客户端。
功能
PostgreSQL兼容性
citus是基于PostgreSQL扩展实现的分布式数据库,基本兼容其SQL处理能力、管理工具等。
分布式事务
citus从7.1版本开始支持分布式事务,使用2pc保证数据的最终一致性。
使用copy命令导入数据时,可以通过配置修改其提交协议(2pc或1pc),默认2pc。
表类型
分片表
主要解决的是大表的水平扩容问题,分片表的分片元数据信息存储在master节点,其数据被打散存储到多个worker节点。
参考表
数据量不是特别大又经常需要和分片表Join的维表可以采用一种特殊的分片策略,只分1个片且每个Worker上部署1个副本,这样的表叫做“参考表”。
本地表
没有经过分片的PostgreSQL原生的表
数据分片方式
append: 追加分片,将分片列值连续的数据写到同一个分片,比如时序数据,将每