【问题标题】:Copy DynamoDB table to another account将 DynamoDB 表复制到另一个账户
【发布时间】:2019-08-15 02:01:32
【问题描述】:

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

表大小为 20 GB。

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

【问题讨论】:

标签: amazon-web-services amazon-dynamodb


【解决方案1】:

AWS 推荐的最佳实践是使用 AWS Data Pipeline 服务,同时使用名为:

的预定义管道模板
  1. 从 S3 导入 DynamoDB 备份数据
  2. 将 DynamoDB 表导出到 S3

关于这个主题的完整教程写得很好,可以在AWS Data Pipeline Docs找到。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多