服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - 使用Citus将Postgres 转换为分布式数据库

使用Citus将Postgres 转换为分布式数据库

2022-03-03 22:55黑客下午茶为少 PostgreSQL

Citus 是 Postgres 的开源扩展,它在集群中的多个节点上分布数据和查询。

使用Citus将Postgres 转换为分布式数据库

什么是 Citus?

Citus 是 Postgres 的开源扩展,它在集群中的多个节点上分布数据和查询。因为 Citus 是 Postgres 的扩展(不是 fork),所以当您使用 Citus 时,您也在使用 Postgres。您可以利用最新的 Postgres 功能、工具和生态系统。

Citus 将 Postgres 转换为具有分片、分布式 SQL 引擎、引用表和分布式表等功能的分布式数据库。 Citus 将并行性、在内存中保留更多数据和更高的 I/O 带宽相结合,可以显着提高多租户 SaaS 应用程序、面向客户的实时分析仪表板和时间序列工作负载的性能。

获得 Citus 的三种方法:

1.开源:您可以下载 Citus 开源代码,或访问 GitHub 上的 Citus 存储库。

https://www.citusdata.com/download

https://github.com/citusdata/citus

2.企业软件:Citus Enterprise 可作为软件订阅以及 24x7 支持,供那些想要手动管理 Citus 的人使用。

3.托管数据库服务:Citus 在 Azure 上以 Hyperscale (Citus) 的形式提供,这是 Azure Database for PostgreSQL 托管服务中的内置部署选项。

https://docs.microsoft.com/azure/postgresql/hyperscale

Citus 可以扩展多远?

Citus 通过添加工作节点进行水平扩展,并通过升级 workers/coordinator 进行垂直扩展。在实践中,我们的客户已经达到了以下规模,还有更大的增长空间:

Algolia

  • 每天摄取 5-10B 行

Heap

  • 700+ 亿次事件
  • 70 节点 Citus 数据库集群上的 1.4PB 数据

Chartbeat

  • 每月添加 >2.6B 行数据

Pex

  • 每天更新 80B 行
  • 20 节点 Citus 数据库集群是 Google Cloud
  • 2.4TB 内存、1280 核、80TB 数据
  • …计划增长到 45 个节点

Mixrank

  • 1.6PB 的时间序列数据

何时使用 Citus

多租户数据库

大多数 B2B 应用程序已经在其数据模型中内置了租户、客户或帐户的概念。在此模型中,数据库为许多租户提供服务,每个租户的数据都与其他租户分开。

Citus 为该工作负载提供了完整的 SQL 覆盖,并支持将您的关系数据库扩展到 100K+ 租户。 Citus 还为多租户添加了新功能。例如,Citus 支持租户隔离,为大租户提供性能保证,并具有引用表的概念,以减少跨租户的数据重复。

这些功能允许您在多台机器上扩展租户数据,并轻松添加更多 CPU、内存和磁盘资源。此外,在多个租户之间共享相同的数据库模式可以有效地利用硬件资源并简化数据库管理。

Citus 对于多租户应用程序的一些优势:

  • 快速查询所有租户
  • 数据库中的分片逻辑,而不是应用程序
  • 在单节点 PostgreSQL 中保存的数据比可能的多
  • 保持高并发下的性能
  • 跨客户群的快速指标分析
  • 轻松扩展以处理新客户注册
  • 隔离大小客户的资源使用情况

实时分析

Citus 支持对大型数据集的实时查询。通常,这些查询发生在快速增长的事件系统或具有时间序列数据的系统中。示例用例包括:

  • 具有亚秒级响应时间的分析仪表板
  • 关于正在展开的事件的探索性查询
  • 大型数据集归档和报告
  • 使用漏斗、细分和同类群组查询分析会话

Citus 的优势在于它能够并行化查询执行并随集群中工作数据库的数量线性扩展。 Citus 在实时应用方面的一些优势:

  • 随着数据集的增长保持亚秒级响应
  • 实时分析发生的新事件和新数据
  • 并行化 SQL 查询
  • 横向扩展而不放弃 SQL
  • 保持高并发下的性能
  • 快速响应仪表板查询
  • 使用一个数据库,而不是拼凑
  • 丰富的 PostgreSQL 数据类型和扩展

使用注意事项

Citus 扩展了 PostgreSQL 的分布式功能,但它不是扩展所有工作负载的直接替代品。高性能 Citus 集群需要考虑数据模型、工具和所使用的 SQL 功能的选择。

以下是考虑工具和 SQL 功能的一个好方法:如果您的工作负载与此处描述的用例一致,并且您碰巧遇到了不受支持的工具或查询,那么通常有一个很好的解决方法。

当 Citus 不合适时

一些工作负载不需要强大的分布式数据库,而另一些工作负载则需要工作节点之间的大量信息流。在第一种情况下,Citus 是不必要的,而在第二种情况下,通常性能不佳。这里有些例子:

  • 当单节点 Postgres 可以支持您的应用程序并且您不希望增长时
  • 离线分析,无需实时摄取或实时查询
  • 不需要支持大量并发用户的分析应用程序
  • 返回大量数据的 ETL 结果而不是摘要的查询

原文地址:https://mp.weixin.qq.com/s/mf9bW3KGENJabrRQFm-c7A

延伸 · 阅读

精彩推荐
  • PostgreSQLPostgreSQL标准建表语句分享

    PostgreSQL标准建表语句分享

    这篇文章主要介绍了PostgreSQL标准建表语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码上得天下7962021-02-27
  • PostgreSQLpostgresql 数据库中的数据转换

    postgresql 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgresql数据库中,我们可以用"::"来进行字段数据的类型转换。...

    postgresql教程网12482021-10-08
  • PostgreSQLpostgresql 中的to_char()常用操作

    postgresql 中的to_char()常用操作

    这篇文章主要介绍了postgresql 中的to_char()常用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    J符离13432021-04-12
  • PostgreSQLRDS PostgreSQL一键大版本升级技术解密

    RDS PostgreSQL一键大版本升级技术解密

    一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在整个数据库行业的位置之前,我们先看一下阿里云数据库在全球的数据库行业里的...

    未知1192023-05-07
  • PostgreSQL深入理解PostgreSQL的MVCC并发处理方式

    深入理解PostgreSQL的MVCC并发处理方式

    这篇文章主要介绍了深入理解PostgreSQL的MVCC并发处理方式,文中同时介绍了MVCC的缺点,需要的朋友可以参考下 ...

    PostgreSQL教程网3622020-04-25
  • PostgreSQLPostgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程...

    我勒个去6812020-04-30
  • PostgreSQLPostgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价...

    轨迹4622020-05-03
  • PostgreSQL分布式 PostgreSQL之Citus 架构

    分布式 PostgreSQL之Citus 架构

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存比单...

    未知802023-05-07