将 DynamoDB 表复制到另一个账户

asa*_*saf 3 amazon-web-services amazon-dynamodb

如何将 DynamoDB 表复制到另一个 AWS 账户?

表大小为 20 GB。

我无法让数据管道工作 - 我永远得到 WAITING_FOR_RUNNER,所以我更喜欢不同的方法

aze*_*pdx 5

AWS 推荐的最佳做法是使用 AWS Data Pipeline 服务,同时利用名为以下名称的预定义管道模板:

  1. 从 S3 导入 DynamoDB 备份数据
  2. 将 DynamoDB 表导出到 S3

有关此主题的完整教程编写得很好,可在AWS Data Pipeline Docs 中找到

本教程未涵盖的唯一两个问题是:

  1. 您可能需要使用 ACL 或存储桶策略在两个 AWS 账户之间共享 S3 存储桶
  2. 您必须将 DDB 表从“按需”或“自动扩展”吞吐量配置模式更改为手动吞吐量,并为您的表设置足够的读/写容量,以便您的 EMR 作业可以合理扩展。请记住,EMR 作业执行数据导出/导入操作将消耗的 RCU 和 WCU 的比率是您在从上述模板创建数据管道时设置的参数,并且可以稍后更改(如果您在 Architect 中编辑管道)。这种提前规划可确保您的 EMR 作业不会在尝试从 DDB 读取数据时一直卡住,例如,如果您的 RCU 在运行导出之前根据较慢的使用模式通过 Auto-Scaling 设置得非常低。导入时 WCU 也有类似的观察结果。

我可以使用这种方法确认迁移大于 20GB 的表,并且在这种情况下它是最可靠和容错的方法。基于某些库或为此目的编写的代码的其他方法可能更难设置并且需要外部依赖项。其中一些对我来说很早就失败了,这是因为这些工具没有针对大型数据集进行优化。