Citus是PostgreSQL数据库的分布式中间件,用以解决PostgreSQL横向扩展问题,以支持更大的数据量、更大的写入和查询性能。
Citus由CitusData公司开发,目前已被微软收购,并在Azure上提供Citus Cloud服务。Citus为开源软件,经过约10年的发展,最近刚发布10.0版本,License为AGPL。
不像pg-xc的原生分布式方案,Citus是以Extension的方式扩展PostgreSQL能力,不侵入修改PostgreSQL内核代码,可以很容易和PostgreSQL的新版本配套适用,享受到内核版本演进带来的好处。
多租户场景下,绝大部分表都带有tenant_id属性,而且查询大都是指定tenant_id过滤条件的,是sharding friendly的Workload,因此绝大部分SQL都可以路由到指定单节点执行,能够很好的继承PostgreSQL的查询能力,并且有很好的性能扩展性。
多租户场景下,适用Citus能带来以下好处:
下面是一个多租户场景的例子,广告分析场景:
表结构定义如下:
CREATE TABLE companies (
id bigint NOT NULL,
name text NOT NULL,