Citus Data 是一个开源的分布式数据库管理系统,它是基于 PostgreSQL 架构之上,能够允许数据库在多个服务器之间进行分布式运算,以便应对大型数据处理和高流量负载的需求。利用 Citus Data 可以为 PostgreSQL 提供横向扩展的能力,使其可以更好地应对应用中的大量数据请求,具有较高的性能和可扩展性。Citus Data 的特点还包括良好的可用性、容错性、可管理性和可扩展性。Citrus Data 可以作为云端数据库的解决方案提供,同时也适用于在本地运行的企业数据库和分析场景中。
分布式 join 支持方式(数据复制)
单表 join 分表
下图介绍了 单表和 sharding 表 join 时 citus 的处理方式
它两种方式来对 local 表和 distributed 表进行关联查询
将 distributed 表的数据从 workers 节点移动到协调器
将 local 表数据从协调器移动到 workers 节点
两种方式的选择有多种模式可以配置,例如自动模式: 因为一般来说 distributed 表的数据量比较大,所以只有当满足以下条件时才会将数据从 distributed 移动到 local 中