

# Aurora PostgreSQL Limitless Database 架构
<a name="limitless-architecture"></a>

Limitless Database 通过由多个数据库节点组成的双层架构实现扩展。节点要么是路由器，要么是分片。
+ 分片是 Aurora PostgreSQL 数据库实例，每个实例都存储数据库的数据子集，允许同时处理以实现更高的写入吞吐量。
+ 路由器管理数据库的分布式特性，并向数据库客户端提供单个数据库映像。路由器维护有关数据存储位置的元数据，解析传入的 SQL 命令并将这些命令发送到分片。然后，它们聚合来自分片的数据以将单个结果返回给客户端，并管理分布式事务以保持整个分布式数据库的一致性。

Aurora PostgreSQL Limitless Database 与标准 [Aurora 数据库集群](Aurora.Overview.md) 的不同之处在于，它使用的是数据库分片组，而不是写入器数据库实例和读取器数据库实例。构成 Limitless Database 架构的所有节点都包含在数据库分片组中。数据库分片组中的各个分片和路由器在您的 AWS 账户中不可见。您可以使用数据库集群端点访问 Limitless Database。

下图显示了 Aurora PostgreSQL Limitless Database 的大致架构。

![\[Aurora PostgreSQL 无限制数据库的大致架构，显示主集群、分片组和数据分配。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/images/limitless_high_level_arch_GA.png)


有关 Aurora PostgreSQL Limitless Database 架构以及如何使用它的更多信息，请观看 YouTube AWS 活动频道中的以下视频：

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/pUqVCK7Ggh0/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/pUqVCK7Ggh0)


有关标准 Aurora 数据库集群架构的更多信息，请参阅 [Amazon Aurora 数据库集群](Aurora.Overview.md)。

## Aurora PostgreSQL Limitless Database 的关键术语
<a name="limitless-terms"></a>

**数据库分片组**  
Limitless Database 节点（分片和路由器）的容器。

**路由器**  
接受来自客户端的 SQL 连接、向分片发送 SQL 命令、保持系统范围一致性并将结果返回给客户端的节点。

**分片**  
存储分片表子集、参考表的完整副本和标准表的节点。接受来自路由器的查询，但不能由客户端直接连接。

**分片表**  
数据在分片中被分割的表。

**分片键**  
分片表中的一列或一组列，用于确定分片间的分区。

**并置表**  
两个共享相同分片键并显式声明为并置的分片表。相同分片键值的所有数据都将发送到同一个分片。

**引用表**  
一个表，其数据已全部复制到每个分片上。

**标准表**  
Limitless Database 中的默认表类型。您可以将标准表转换为分片表和引用表。  
所有标准表都存储在系统选择的同一个分片上，这样就可以在单个分片中执行标准表之间的联接。但是，标准表受分片的最大容量（128 TiB）的限制。该分片还存储来自分片表和引用表的数据，因此标准表的有效限制低于 128 TiB。

## Aurora PostgreSQL Limitless Database 的表类型
<a name="limitless-types"></a>

Aurora PostgreSQL Limitless Database 支持三种类型的表：*分片表*、*引用表*和*标准表*。

分片表的数据分布在数据库分片组中的所有分片上。Limitless Database 使用*分片键*自动执行此操作，分片键是您在对表进行分区时指定的一列或一组列。拥有相同分片键值的所有数据都会发送到同一个分片。分片基于哈希，不基于范围或列表。

以下是分片表的良好用例：
+ 该应用程序使用不同的数据子集。
+ 该表非常大。
+ 该表的增长速度可能比其他表快。

分片表可以*并置*，这意味着它们共享相同的分片键，并且两个表中具有相同分片键值的所有数据都将发送到同一个分片。如果您配置表并使用分片键将其联接，则可以在单个分片上执行联接，因为所有必需的数据都位于该分片上。

引用表在数据库分片组中的每个分片上都有其所有数据的完整副本。引用表通常用于写入量较小的表，但这些表仍需要经常联接，且不适合分片。引用表的示例包括日期表和地理数据表，例如州/省、城市和邮政编码。

标准表是 Aurora PostgreSQL Limitless Database 中的默认表类型。它们不是分布式表。Aurora PostgreSQL Limitless Database 支持标准表与标准表、分片表和引用表之间的联接。

## Aurora PostgreSQL Limitless Database 的计费
<a name="limitless-billing"></a>

有关 Aurora PostgreSQL Limitless Database 收费方式的信息，请参阅 [ Aurora 的数据库实例计费](User_DBInstanceBilling.md)。

有关 Aurora 定价信息，请参阅 [Aurora 定价页面](https://aws.amazon.com/rds/aurora/pricing)。