CitusData 于日前推出了 Citus 11.0,并宣布将所有企业版的特性都进行开源。此前,Citus 在版本更新时通常会同步发布 2 个版本:开源版本和包含一些额外功能的企业版本。“但是,Citus 11.0 将只有一个版本,因为 Citus 扩展中的所有内容现在都是完全开源的!”
公告指出,这意味着你现在可以在无阻塞写入的情况下重新平衡分片、跨集群管理角色、将租户隔离到他们自己的分片等等。“你可以从任何节点查询你的 Citus 集群,从而创建真正分布式的 PostgreSQL 体验。”
Citus 是一个 PostgreSQL 的扩展,将 Postgres 转变为一个分布式数据库,因此你可以在任何规模下实现高性能。CitusData 于 2019 年被微软收购;官方表示,目前团队的重点已转向开源。“让 Citus 开源使你能够直接与开发者和社区互动、了解你运行的代码、避免锁定问题,而且它为每个人创造了更好的开发者体验。”
去年,在 Citus 10 版本中已经开源了分片再平衡功能(shard rebalancer);这是 Citus 的一个重要组成部分,允许你通过将数据转移到新的节点来轻松扩展你的集群。且分片再平衡功能对性能也很有用,可以在集群中的所有节点之间平衡数据。现在作为 Citus 11.0 的一部分,其余的企业功能也全部开源,包括有:
- 使用逻辑复制重新平衡分片以避免阻塞写入
- 多用户支持(角色和授权传播、行级安全性)
- 多租户应用的租户隔离
- 对节点间身份验证的细粒度控制
- 通过连接池路由内部连接
- 数据加载的性能优化
此外,Citus 11 还带有一个重要的新功能 —— 自动模式和元数据同步。
以及一个隐藏的预览功能 —— 分布式表的触发器,用户可使用citus.enable_unsafe_triggers 设置启用触发器:
CREATE TABLE data (key text primary key, value jsonb);
SELECT create_distributed_table('data','key');
CREATE TABLE data_audit (operation text, key text, new_value jsonb, change_time timestamptz default now());
SELECT create_distributed_table('data_audit','key', colocate_with := 'data');
-- we know this function only writes to a co-located table using the same key
CREATE OR REPLACE FUNCTION audit_trigger()
RETURNS trigger
AS $$
DECLARE
BEGIN
INSERT INTO data_audit VALUES (TG_OP, Coalesce(OLD.key, NEW.key), NEW.value);
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
-- so, it is safe to enable triggers on distributed tables
SET citus.enable_unsafe_triggers TO on;
CREATE TRIGGER data_audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON data
FOR EACH ROW EXECUTE FUNCTION audit_trigger();
公告称,新版 Citus 11 的发布标志着 Citus 正在进入新的领域。“想象一下,如果有一个 FOSS 工具可以将最新版本的 PostgreSQL 变成一个分布式数据库,它可以从单个节点向外扩展,在集群中路由或并行化查询,在任何规模下都有很高的性能,允许你把你的应用程序连接到任何节点,不间断地扩展,在 Azure 上单击几下即可获得集群或在任何环境中自行运行。此外,它可以满足极端数据密集型工作负载的要求。这就是 Citus 11 所提供的。”
更多详情可查看官方博客。
本文转自OSCHINA
本文标题:100% 开源,Citus 11 将企业版特性全部开源
本文地址:https://www.oschina.net/news/200300/citus-11-goes-fully-open-source