如何以最短的停机时间将DynamoDB表迁移到Global DynamoDB表?

时间:2018-05-31 06:45:25

标签: python amazon-web-services amazon-dynamodb

AWS不允许将现有的DynamoDB表转换为Global DynamoDB表。所以我需要编写一些代码或找到已有的工具来完成它。 现有的表有很多数据,因为它的导出 - 导入过程需要很长时间,停机时间不是一个选项。

我有一个大致的行动计划,要做迁移:

  1. 创建全局表格
  2. 更改应用程序逻辑以开始在全局表中写入。当请求来读取数据时首先尝试全局表,如果没有数据 - 当读取正常表时。
  3. 将数据从普通表复制到全局表。
  4. 再次更改应用程序逻辑,以便只从全局表中进行写入和读取。
  5. 删除普通表格。
  6. 我想知道是否有人进行了类似的迁移?如何简化两个表(全局和普通)的读取?是否存在用于boto或pynamodb或其他lib的任何插件/ lib /包装器来执行此操作? 或者您使用其他方法进行迁移,请分享。

1 个答案:

答案 0 :(得分:0)

从2019年11月开始,可以将现有DynamoDB表转换为Global Tables而不会丢失数据。

”从今天开始,您可以将现有DynamoDB表转换为 在AWS管理控制台中单击几下的全局表,或者 使用AWS命令行界面(CLI)或Amazon DynamoDB API。以前,只能将空表转换为全局表 表。您当时不得不猜测表的区域用法 您创建了它。现在您可以全球化,也可以扩展现有的 全局表可随时添加到其他区域。”

https://aws.amazon.com/blogs/aws/new-convert-your-single-region-amazon-dynamodb-tables-to-global-tables/

要在AWS控制台中将DynamoDB表转换为全局表:

  1. 导航到AWS控制台中的DynamoDB表。
  2. 选择“全局表”标签。
  3. 如果系统提示您启用流,请启用流。全局表需要流。
  4. 单击“添加区域”以添加全局表并选择一个区域。

以我的经验,创建全局表需要10到20分钟。