

# DynamoDB 全局表的吞吐能力规划
<a name="bp-global-table-design.prescriptive-guidance.throughput"></a>

将流量从一个区域迁移到另一个区域时，需要仔细考虑容量方面的 DynamoDB 表设置。

以下是管理写入容量的一些注意事项：
+ 全局表必须处于按需模式，或在启用自动扩缩的情况下进行预调配。
+ 如果使用自动扩缩进行预调配，则会跨区域复制写入设置（最小、最大和目标利用率）。尽管自动扩缩设置已同步，但实际的预调配写入容量可能会在区域间独立浮动。
+ 您可能会看到不同预调配写入容量的原因之一是 TTL 功能。当您在 DynamoDB 中启用 TTL 时，您可以指定一个属性名称，其值表示项目的过期时间，采用 Unix 纪元时间格式，单位为秒。在该时间之后，DynamoDB 可以删除该项目而不会产生写入成本。使用全局表，您可以在任何区域中配置 TTL，并且该设置会自动复制到与全局表关联的其他区域。当某个项目符合通过 TTL 规则删除的条件时，该工作可以在任何区域中完成。执行删除操作时不消耗源表上的写入单位，但是副本表将获得该删除操作的复制写入，并将产生复制写入单位成本。MRSC 表不支持 TTL。
+ 如果您使用自动扩缩，请确保最大预调配写入容量设置足够高，足以处理所有写入操作以及所有潜在的 TTL 删除操作。自动扩缩根据每个区域的写入消耗量调整每个区域。按需表没有最大预调配写入容量设置，但*表级别的最大写入吞吐量限制*指定了按需表将允许的最大持续写入容量。原定设置限制为 40000，但可以调整。我们建议您将其设置得足够高，以处理按需表可能需要的所有写入操作（包括 TTL 写入操作）。设置全局表时，此值在所有参与区域间必须相同。

以下是管理读取容量的一些注意事项：
+ 允许不同区域之间的读取容量管理设置有所不同，因为假设不同的区域可能有独立的读取模式。当您首先向表添加全局副本时，将传播源区域的容量。创建后，您可以调整读取容量设置，这些新设置不会传输到另一端。
+ 使用 DynamoDB Auto Scaling 时，请确保最大预调配读取容量设置足够高，足以处理所有区域的所有读取操作。在标准操作期间，读取容量可能会分布在各个区域之间，但在失效转移期间，表应该能够自动适应增加的读取工作负载。按需表没有最大预调配读取容量设置，但*表级别的最大读取吞吐量限制*指定了按需表将允许的最大持续读取容量。原定设置限制为 40000，但可以调整。我们建议您将其设置得足够高，以处理该表可能需要的所有读取操作（当所有读取操作都路由到此单个区域时）。
+ 如果一个区域中的表通常不会接收读取流量，但在失效转移后可能必须吸收大量读取流量，则可以预调配该表的容量以接受更高水平的读取流量。

无论您是否使用 Route 53 来路由请求，ARC 都有[就绪检查](https://docs.aws.amazon.com/r53recovery/latest/dg/recovery-readiness.rules-resources.html)功能，这对于确认 DynamoDB 区域是否具有相似的表设置和账户限额非常有用。这些就绪检查功能还有助于调整账户级别的限额以确保它们匹配。