这个项目能做什么
Citus 是一个 PostgreSQL 扩展,可将单个 Postgres 数据库转变为分布式数据库,让您能够在多个节点间进行横向扩展,同时继续使用标准的 PostgreSQL 工具和扩展。
README 中描述的核心功能:
- 分布式表:表在 PostgreSQL 节点集群中进行分片,整合 CPU、内存、存储和 I/O 容量。create_distributed_table 函数可在本地或跨工作节点对表进行分片。
- 参考表:复制到所有节点,以支持不包含分布列的连接和外键,并提高读取性能。
- 分布式查询引擎:在集群中路由和并行化 SELECT、DML 及其他操作。基于分布列过滤的查询会路由到单个工作节点;其他查询则跨分片并行化。
- 列式存储:一种 USING columnar 表访问方法,可压缩数据、加速扫描并支持快速投影,可用于常规表或分布式表。列式表不支持更新、删除和外键;建议通过 COPY 或 INSERT..SELECT 进行批量加载。
- 从任何节点查询:可从集群中的任何节点发出分布式查询,而架构更改和集群管理仍通过协调器进行。
- 基于架构的分片(自 Citus 12.0 起):一种共享数据库、独立架构的模型,其中每个架构充当逻辑分片,适用于多租户应用和微服务,无需更改查询。
- create_distributed_table_concurrently:将现有表转换为分布式表,而不会阻塞读取和写入。
- 共置:共享分布列的分布式表可以共置,以实现高效的分布式连接、外键、INSERT..SELECT、存储过程和分布式事务。
部署选项包括 Azure 上的托管服务(Azure Database for PostgreSQL Flexible Server 中的弹性集群)、Docker 镜像(citusdata/citus)以及适用于 Ubuntu/Debian 和 Red Hat 的本地软件包。多节点集群通过添加工作节点和重新平衡分片来构建。通过 Patroni 3.0 支持高可用性,该版本对 Citus 提供了一流支持。
README 将 Citus 定位为适用于超出单个 PostgreSQL 节点容量的应用程序,以及需要大规模 PostgreSQL 功能的工作负载,例如多租户 SaaS、实时分析仪表板、时间序列和 IoT 数据。文档、用例指南和 SIGMOD '21 论文均被引用以供参考。
评论
0 评分人数达到10人后显示
登录后参与讨论。