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

简介: 【10月更文挑战第4天】Citus 简介,将 Postgres 转换为分布式数据库

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

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

获得 Citus 的三种方法:

开源:您可以下载 Citus 开源代码,或访问 GitHub 上的 Citus 存储库。
https://www.citusdata.com/download
https://github.com/citusdata/citus
何时使用 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 结果而不是摘要的查询

目录
相关文章
|
7月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
7月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
323 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
7月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
419 10
|
8月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
719 2
|
10月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
10月前
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
344 12
|
12月前
|
SQL 运维 关系型数据库
体验用分布式数据库突破资源瓶颈,完成任务领智能台灯!
体验用分布式数据库突破资源瓶颈,完成任务领智能台灯!
|
12月前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错