Amazon DynamoDB 全局表是一个完全托管、无服务器、多区域和多活动的数据库。全局表为您提供 99.999% 的可用性、更高的应用程序弹性和经过改进的业务连续性。由于全局表会在您选择的 AWS 区域中自动复制您的 Amazon DynamoDB 表,使您可以实现快速的本地读写性能。

在极少数发生单个区域故障的情况下,无需进行数据库失效转移,因为全局表的多活动架构允许客户读取和写入任何副本表。全局表还消除了在区域之间复制数据和解决多活动工作负载的更新冲突的困难工作。此外,全局表使您的应用程序能够保持高度可用,即使在整个区域被隔离或降级的罕见情况下也是如此。

您可以使用 AWS 命令行界面(AWS CLI)AWS CloudFormationAWS 管理控制台中配置全局表。读取或写入全局表时不需要更改应用程序,因为全局表使用与单区域表相同的 DynamoDB API。

使用全局表不涉及预付费用,也无需签订合同,您仅需为使用的资源付费。在 Amazon DynamoDB 开发人员指南中了解有关配置全局表的更多信息。有关全局表定价的更多信息,请参阅按需预置的 Amazon DynamoDB 定价选项。

工作原理

DynamoDB 全局表由多个副本表组成。每个副本表存在于不同的区域中,但所有副本都具有相同的名称和主键。当数据写入任何副本表时,DynamoDB 会自动将该数据复制到全局表中的所有其他副本表。

例如,假设您的应用程序为分布在三个地理区域(美国东海岸、加拿大和西欧)的庞大客户群提供服务。如果没有全局表,则必须在每个 AWS 区域中创建一个表并编写代码,以在每个区域的每个表中复制数据更改。

使用全局表,您可以在离每个地理区域最近的三个区域创建一个包含副本表的全局表。DynamoDB 会自动将任何副本的更改复制到其他区域的副本。

全局表使应用程序的用户无论身在何处都能以低延迟访问数据。虽然发生的可能性很小,但如果某个 AWS 区域暂时不可用,您的客户仍然可以访问其他区域中的副本表。

显示全局表工作原理的图表

优势

本地读取和写入,全局访问数据

多活动、多区域复制可确保在一个区域中对副本表执行的更新复制到其他区域的副本表。跨区域的表副本之间的复制最终是一致的。这意味着对应用程序所在区域内的副本表进行本地读取和写入可以实现强一致性。但是,对区域内其他副本表中项目的读取最终是一致的。

性能

全局表使您能够在本地读取和写入数据,从而使任何规模的全局分布式应用程序都只有个位数的毫秒延迟。这可以提高大规模扩展的全球应用程序的性能。

设置和操作简单

全局表消除了在 Amazon DynamoDB 中部署和管理多活动、多区域复制的复杂性和操作负担。您可以选择需要复制数据的区域,DynamoDB 将处理余下的工作。应用程序通过使用现有的 DynamoDB API 和端点来访问全局表。

可用性、持久性和多区域容错能力

全局表专为 99.999% 的可用性而设计。如果一个区域被隔离或降级,您的应用程序可以重定向到另一个区域,并对另一个副本表执行读写操作。您可以应用自定义业务逻辑,以确定何时将请求重定向到其他区域。 

此外,Amazon DynamoDB 会跟踪已经执行但尚未传播到所有副本表的任何写入操作。当区域恢复上线时,Amazon DynamoDB 会继续将任何待处理的写入操作从该区域传播到其他区域的副本表中,反之亦然。

一致性和冲突解决

对任何副本表中的任何项目进行的更改都将复制到相同全局表内的所有其他副本中。在全局表中,新写入的项目通常会在一秒钟内传播到所有副本表中。  使用全局表,每个副本表可以存储同一组数据项目。Amazon DynamoDB 不支持仅对某些项目进行部分复制。 如果应用程序几乎同时在不同区域中更新相同项目,可能会引起冲突。

为了解决冲突,Amazon DynamoDB 全局表在并发更新之间采用保留最后写入协调功能,Amazon DynamoDB 在其中尽最大努力确定最后的写入。使用此冲突解决机制,所有副本都同意最后的更新,并汇聚到拥有相同数据的状态。

开始使用

要开始将现有表转换为全局表,或创建新的全局表,请使用 Amazon DynamoDB 控制台、AWS CLI 或 AWS CloudFormation。如果您是刚刚接触 Amazon DynamoDB,请访问 DynamoDB 入门页面。在开始之前,请根据您的应用程序需求,查看全局表的按需或预置容量的定价。

      常见问题

      Amazon DynamoDB 全局表是什么?

      全局表是一个或多个副本表的集合,全部由单个 AWS 账户所有。单个 Amazon DynamoDB 全局表在每个 AWS 区域只能有一个副本表。

      Amazon DynamoDB 副本表是什么?

      副本表是单个 DynamoDB 表。每个副本表存储相同的数据项集,具有相同的表名和相同的主键架构。当应用程序将数据写入一个区域中的副本表时,Amazon DynamoDB 会将写入操作自动复制到其他 AWS 区域中的其他副本表。

      我是否应该考虑将 Amazon DynamoDB 全局表用于我的业务连续性策略?

      是的,Amazon Dynamo 全球表可增强业务连续性,因为它提高了应用程序的弹性并为单个区域提供强一致性。由于全局表是多活动的,因此应用程序可以读取或写入任何副本表。在出现计划外区域事件的罕见情况下,应用程序可以重定向到另一个副本。

      如何使 Amazon DynamoDB 表全局化?

      您可以按照这份分步指南,使用 Amazon DynamoDB 控制台、AWS CLI 或 AWS CloudFormation 创建全局表。

      Amazon DynamoDB 全局表的先决条件是什么?

      在向 Amazon DynamoDB 全局表添加其他区域的副本之前,该表必须满足以下条件:已启用 DynamoDB Streams;与所有其他副本同名;具有与所有其他副本相同的分区键;并且具有相同的写入容量设置。

      Amazon DynamoDB 表名是全局唯一的吗?

      Amazon DynamoDB 全局表中的所有副本表必须具有相同的名称。

      Amazon DynamoDB 表和全局表有什么区别?

      与其他数据库类似,Amazon DynamoDB 也将数据存储在表中。表是项目的集合,每个项目都是属性的集合。Amazon DynamoDB 使用主键来唯一标识表中的每个项目,并具有二级索引,可提供更大的查询灵活性。

      相比之下,Amazon DynamoDB 全局表是单个 AWS 账户拥有的一个或多个副本表的集合。每个副本表在结构上都与常规 Amazon DynamoDB 表相同。

      Amazon DynamoDB 全局表是否提供时间点恢复?

      是的,您可以在全局表的每个副本上启用时间点恢复。

      最佳实践

        客户案例

        “当新冠大流行开始时,我们的语音和视频服务出现了巨量需求。在 2020 年初,我们看到来自需要虚拟连接的新老客户的每日会议参与者的使用量前所未有地从 10M 增加到 300M。在后端,我们能够使用 Amazon DynamoDB for Zoom Meetings 管理这种激增。将 DynamoDB 全局表与按需模式结合使用,使我们能够几乎无限地扩展而不会出现性能问题,即使我们的使用量突然激增。”

        Zoom Video Communications, Inc. 云运维工程经理 Yasin Mohammed

        “跨不同区域复制数据是一个非常困难的问题,现在我们可以使用 Amazon DynamoDB 全局表轻松完成这项工作”。

        Saral Jain,Snap Inc 工程总监兼基础设施负责人

        阅读案例研究 »

        Disney+

        Disney+ 背后的内容发现团队使用 DynamoDB 全局表进行扩展并提供热门功能,如“继续观看”、“观看列表”和“个性化推荐”。

        观看视频 »

        详细了解全局表
        详细了解 DynamoDB 全局表

        查看 DynamoDB 开发人员指南。

        了解更多 
        注册免费账户
        注册免费账户

        立即享受 AWS Free Tier。 

        注册 
        开始在控制台中构建
        开始在控制台中构建

        在 DynamoDB 控制台中开始使用 DynamoDB 全局表构建。

        开始构建