Citus: PostgreSQL的扩展集群和分片
Citus
解决了用户的以下问题:
分片.
Citus
会处理所有的分片,因此应用程序不需要具有分片感知功能。多租户. 为了将多个客户的数据库放在一个共享集群上而构建的应用程序-就像大多数SaaS应用程序一样-被称为多租户. 分片、扩展、重新分片、负载均衡等都是现代SaaS平台中常见的痛点,所有这些都是
Citus
解决的问题。分析.
Citus
并不是一个专门的分析型数据库,但它肯定是为分布式的、大规模并行的分析工作负载而部署的。部分原因是因为Citus
支持复杂的查询,建立在Postgres自己非常健壮的SQL支持之上。CITUS可以分割查询,这些查询可以执行分布式、GroupBy和Join之类的组合操作。
Citus
集群由协调器PostgreSQL
节点和工作者PostgreSQL
节点组成。协调器接收查询,然后将它们分解为较小的查询,这些查询在工作节点中的数据分片上执行。协调器然后重新组装结果并将它们返回给客户机。
Citus
不是中间件:它是Postgres
的扩展,它将数据节点集合转换为集群数据库。这意味着所有的查询重写、散点聚集MPP处理等都发生在PostgreSQL
服务器进程中,因此它可以利用PostgreSQL现有的大量代码库和功能。
Citus
在标准的、未打补丁的PostgreSQL
服务器上运行。的修改是将扩展安装到服务器中。这是一个独特且极其重要的优势:大多数从另一个数据库派生的集群数据库不可避免地落后于原始数据库的旧版本,无法跟上不断重构以构建新版本的繁重工作负载。对Citus
来说就不是这样了,它不会分叉Postgres
-它使用Postgres
自己的扩展机制来扩展它。这意味着Citus
能够继续在自己的软件上进行创新,同时继续受益于PostgreSQL
社区以正常节奏提供的强大进展。
我知道很多公司多年来一直在成功地使用Citus
来支持具有挑战性的生产工作。在VividCortex,我们甚至建立了对Citus的支持,因为我们有客户在使用它。
Citus
是开源的,得到了一家名为Citus Data
的公司的支持,并且在商业上取得了成功,拥有快速增长的客户群。我认识Citus
几年来的关键人物,并有机会与他们进行多次互动。Citus
近被微软收购,后者的云数据库产品为未来提供了明显的战略可能性,我相信Citus
在微软内部的愿景上已经做好了很好的准备。我很兴奋地看到,在微软进入市场的过程中,如何才能更好地采用Citus
。如果您喜欢并信任PostgreSQL
,并且存在可以从分片、横向扩展和多租户支持中获益的问题,那么Citus
无疑是值得考虑的。
本文翻译自:https://www.xaprb.com/blog/citus/
相关文章