当前位置: 首页 > 科技观察

Citus简介,将Postgres转换为分布式数据库

时间:2023-03-12 08:49:23 科技观察

什么是Citus?Citus是Postgres的开源扩展,可在集群中的多个节点间分布数据和查询。因为Citus是Postgres的扩展(不是分支),所以当你使用Citus时,你也在使用Postgres。您可以利用最新的Postgres功能、工具和生态系统。Citus将Postgres变成一个分布式数据库,具有分片、分布式SQL引擎、引用表和分布式表等功能。Citus将并行性、在内存中保留更多数据和更高的I/O带宽相结合,可以显着提高多租户SaaS应用程序、面向客户的实时分析仪表板和时间序列工作负载的性能。获取Citus的三种方式:1.开源:您可以下载Citus开源代码,或者访问GitHub上的Citus仓库。https://www.citusdata.com/downloadhttps://github.com/citusdata/citus2。企业软件:CitusEnterprise可作为软件订阅提供,并为那些想要手动管理Citus的人提供24x7支持。3.托管数据库服务:Citus在Azure上以超大规模(Citus)的形式提供,这是AzureDatabaseforPostgreSQLManagedService中的一个内置部署选项。https://docs.microsoft.com/azure/postgresql/hyperscaleCitus可以扩展到什么程度?Citus通过添加工作节点进行水平扩展,通过升级工作人员/协调器进行垂直扩展。在实践中,我们的客户已达到以下规模,具有更大的增长空间:Algolia每天摄取5-10B行Heap700+十亿事件70节点Citus数据库集群上的1.4PB数据Chartbeat每月添加>2.6B行DataPex每天更新80B行20节点Citus数据库集群是GoogleCloud2.4TB内存,1280核,80TB数据...计划增长到45节点Mixrank1.6PB时序数据何时使用Citus多租户数据库大多数B2B应用程序已经内置到其数据模型中的是租户、客户或帐户的概念。在此模型中,一个数据库为许多租户提供服务,每个租户的数据都与其他租户分开保存。Citus为这种工作负载提供完整的SQL覆盖,并支持将您的关系数据库扩展到100K+租户。Citus还增加了多租户的新功能。例如,Citus支持租户隔离,为大租户提供性能保障,并有引用表的概念来减少跨租户的数据重复。这些功能允许您跨多台机器扩展租户数据,并轻松添加更多CPU、内存和磁盘资源。此外,在多个租户之间共享相同的数据库模式可以有效地利用硬件资源并简化数据库管理。Citus对于多租户应用程序的一些优势:所有租户数据库中的快速查询分片逻辑而不是应用程序比单节点PostgreSQL保留更多的数据在高并发下保持性能跨客户群的快速指标分析轻松扩展以处理新的客户注册隔离大客户和小客户的资源使用实时分析Citus支持对大数据集的实时查询。通常,这些查询发生在快速增长的事件系统或具有时间序列数据的系统中。示例用例包括:具有亚秒级响应时间的分析仪表板对展开事件的探索性查询大型数据集归档和报告使用漏斗、细分和群组查询的分析会话Citus的优势在于它能够并行化查询执行并随数量线性扩展集群中的工作数据库。Citus在实时应用程序中的一些优势:随着数据集的增长保持亚秒级响应使用一个数据库而不是将一组丰富的PostgreSQL数据类型和扩展使用考虑因素拼凑在一起Citus扩展了PostgreSQL的分布式功能,但它不是一个下降-代替扩展所有工作负载。高性能Citus集群需要考虑数据模型、工具和所用SQL功能的选择。以下是考虑工具和SQL功能的好方法:如果您的工作负载符合此处描述的用例,并且您碰巧遇到不受支持的工具或查询,通常会有一个很好的解决方法。当Citus不适合时,某些工作负载不需要强大的分布式数据库,而其他工作负载则需要工作节点之间的大量信息流。在第一种情况下,Citus是不必要的,而在第二种情况下,性能通常很差。以下是一些示例:当单节点Postgres可以支持您的应用程序并且您不希望增长时的离线分析不需要实时摄取或不需要支持大量实时查询的分析应用程序并发用户返回大量数据的查询ETL结果而不是摘要