Compartir a través de

了解分布式关系数据库

适用对象: Azure Cosmos DB for PostgreSQL(由 PostgreSQL 的 Citus 数据库扩展提供支持)

Azure Cosmos DB 是一个多区域分布式数据库平台,适用于任何规模的 NoSQL 数据库和关系数据库。 本文在 Azure Cosmos DB 的关系 API 选项上下文中探讨分布式关系数据库。

有关 Azure 中其他数据存储选项的详细信息,请参阅在 Azure 体系结构中心选择正确的数据存储

挑战

在很多时候,当你阅读有关大数据量或高事务量工作负载的信息时,你经常认为这些工作负载比应用程序可能面临的任何工作负载都要大得多。 在项目成形、构思或筹备的初始阶段,假设工作负载的规模较小可能是保险的做法。 但是,这种假设很快就会导致应用程序工作负载的增长幅度远超所做的任何预测。 在项目起步阶段,工作负载只能满足经济型高性能单实例数据库的最大吞吐量或处理能力的情况并不少见。

关系数据库

关系数据库将数据组织成表格(行/列)格式,其中包含数据库中不同表之间的关系。 关系数据库在各种企业中都很常用。 在这些企业中,往往有大量软件开发人员针对关系数据库编写代码,或者有大量管理员设计架构和管理关系数据库平台。 关系数据库通常还支持附带 ACID 保证的事务。

遗憾的是,许多关系数据库系统最初是由组织以单节点方式配置的,其计算、内存和网络资源存在上限。 这种情况可能会导致错误地假设所有关系数据库在本质上都是单节点的。

分布式数据库

在许多云原生白皮书中我们经常会看到,由于 NoSQL 数据库有诸多优势,使得关系数据库似乎不是大规模数据库或分布式工作负载的合理选择。 虽然许多分布式数据库是非关系型的,但它们同样是分布式关系数据库工作负载的选项。

其中许多适用于分布式关系数据库的选项需要组织从项目初始阶段就开始为大规模和分布式工作负载做好规划。 这项规划要求可能会在项目初始阶段显著增大复杂性,以确保团队配置、管理和维护所有相关服务器节点。 多区域分布式关系数据库的规划、实现和网络要求很容易增加,以致比建立单个实例(或节点)要复杂得多。

Azure Cosmos DB

Azure Cosmos DB 是一个数据库平台,它以 NoSQL 和关系数据库变体的形式提供分布式数据 API。 具体而言,Azure Cosmos DB 的关系 API 基于 PostgreSQLCitus 扩展

Citus 是一个 PostgreSQL 扩展,可对 Postgres 添加分发数据和事务的支持。 Azure Cosmos DB for PostgreSQL 是使用 Citus 的完全托管式服务,它可以自动为你提供高可用性,而无需手动规划、管理和维护各个服务器节点。 通过使用 API for PostgreSQL,可以从完全托管的单节点群集开始,生成数据库解决方案,然后随着应用程序需求随时间推移的增长,以统包方式缩放该解决方案。 使用 PostgreSQL 的 API,无需提前规划复杂的分布项目,也无需规划项目将数据从单节点数据库一路迁移到分布式数据库。

后续步骤

想要开始使用 Azure Cosmos DB?