Aurora PostgreSQL Limitless Database 架构
Limitless Database 通过由多个数据库节点组成的双层架构实现扩展。节点要么是路由器,要么是分片。
-
分片是 Aurora PostgreSQL 数据库实例,每个实例都存储数据库的数据子集,允许同时处理以实现更高的写入吞吐量。
-
路由器管理数据库的分布式特性,并向数据库客户端提供单个数据库映像。路由器维护有关数据存储位置的元数据,解析传入的 SQL 命令并将这些命令发送到分片。然后,它们聚合来自分片的数据以将单个结果返回给客户端,并管理分布式事务以保持整个分布式数据库的一致性。
Aurora PostgreSQL Limitless Database 与标准 Aurora 数据库集群 的不同之处在于,它使用的是数据库分片组,而不是写入器数据库实例和读取器数据库实例。构成 Limitless Database 架构的所有节点都包含在数据库分片组中。数据库分片组中的各个分片和路由器在您的 AWS 账户中不可见。您可以使用数据库集群端点访问 Limitless Database。
下图显示了 Aurora PostgreSQL Limitless Database 的大致架构。

有关 Aurora PostgreSQL Limitless Database 架构以及如何使用它的更多信息,请观看 YouTube AWS 活动频道中的以下视频:
有关标准 Aurora 数据库集群架构的更多信息,请参阅 Amazon Aurora 数据库集群。
Aurora PostgreSQL Limitless Database 的关键术语
- 数据库分片组
-
Limitless Database 节点(分片和路由器)的容器。
- 路由器
-
接受来自客户端的 SQL 连接、向分片发送 SQL 命令、保持系统范围一致性并将结果返回给客户端的节点。
- 分片
-
存储分片表子集、参考表的完整副本和标准表的节点。接受来自路由器的查询,但不能由客户端直接连接。
- 分片表
-
数据在分片中被分割的表。
- 分片键
-
分片表中的一列或一组列,用于确定分片间的分区。
- 并置表
-
两个共享相同分片键并显式声明为并置的分片表。相同分片键值的所有数据都将发送到同一个分片。
- 引用表
-
一个表,其数据已全部复制到每个分片上。
- 标准表
-
Limitless Database 中的默认表类型。您可以将标准表转换为分片表和引用表。
所有标准表都存储在系统选择的同一个分片上,这样就可以在单个分片中执行标准表之间的联接。但是,标准表受分片的最大容量(128 TiB)的限制。该分片还存储来自分片表和引用表的数据,因此标准表的有效限制低于 128 TiB。
Aurora PostgreSQL Limitless Database 的表类型
Aurora PostgreSQL Limitless Database 支持三种类型的表:分片表、引用表和标准表。
分片表的数据分布在数据库分片组中的所有分片上。Limitless Database 使用分片键自动执行此操作,分片键是您在对表进行分区时指定的一列或一组列。拥有相同分片键值的所有数据都会发送到同一个分片。分片基于哈希,不基于范围或列表。
以下是分片表的良好用例:
-
该应用程序使用不同的数据子集。
-
该表非常大。
-
该表的增长速度可能比其他表快。
分片表可以并置,这意味着它们共享相同的分片键,并且两个表中具有相同分片键值的所有数据都将发送到同一个分片。如果您配置表并使用分片键将其联接,则可以在单个分片上执行联接,因为所有必需的数据都位于该分片上。
引用表在数据库分片组中的每个分片上都有其所有数据的完整副本。引用表通常用于写入量较小的表,但这些表仍需要经常联接,且不适合分片。引用表的示例包括日期表和地理数据表,例如州/省、城市和邮政编码。
标准表是 Aurora PostgreSQL Limitless Database 中的默认表类型。它们不是分布式表。Aurora PostgreSQL Limitless Database 支持标准表与标准表、分片表和引用表之间的联接。
Aurora PostgreSQL Limitless Database 的计费
有关 Aurora PostgreSQL Limitless Database 收费方式的信息,请参阅 Aurora 的数据库实例计费。
有关 Aurora 定价信息,请参阅 Aurora 定价页面