Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用全局二级索引创建最终一致性副本

您可以使用全局二级索引创建表的最终一致性副本。通过创建副本,您可以执行以下操作:

  • 为不同的读取器设置不同的预置读取容量。 例如,假设您有两个应用程序:一个应用程序处理高优先级查询并需要最高级别的读取性能,而另一个应用程序处理可容忍读取活动受限的低优先级查询。

    如果这两个应用程序均读取同一个表,则低优先级应用程序的需要执行大量读取操作的负载可能会占用该表的所有可用读取容量。这将限制高优先级应用程序的读取活动。

    相反,您可以通过全局二级索引创建一个副本,可为该副本设置的读取容量独立于表本身的读取容量。然后,您可以让低优先级应用程序查询副本而不是表。

  • 完全消除对表的读取。 例如,您可能有一个从网站捕获大量点击流活动的应用程序,并且您不想冒让读取操作干扰捕获的风险。您可以隔离此表并阻止其他应用程序读取 (请参阅使用 IAM 策略条件实现精细访问控制),同时让其他应用程序读取使用全局二级索引创建的副本。

要创建副本,请设置一个具有与父表相同的键架构的全局二级索引,其中部分或所有非键属性被投影到此索引中。在应用程序中,可将部分或所有读取活动定向至此全局二级索引而不是父表。随后,可调整全局二级索引的配置的读取容量以处理这些读取,而无需更改父表的配置的读取容量。

对父表进行写入的时间与索引中显示写入数据的时间之间始终存在较短的传播延迟。换句话说,应用程序应考虑到全局二级索引副本仅与父表最终一致

可创建多个全局二级索引副本来支持不同的读取模式。创建副本时,仅投影每种读取模式实际需要的属性。之后,应用程序会占用较少的配置的读取容量,以便仅获取所需数据而不是必须读取父表中的项目。随着时间的推移,此优化可以节省大量成本。