amazon-web-services - 将 DynamoDB 表复制到另一个帐户

标签 amazon-web-services amazon-dynamodb

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

表大小为 20 GB。

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

最佳答案

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 中编辑管道)。如果您的 RCU 在运行导出之前基于较慢的使用模式被自动缩放设置得非常低,那么这种提前计划可确保您的 EMR 作业永远不会卡在尝试从 DDB 读取数据的过程中。类似的观察结果也适用于导入时的 WCU。

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

关于amazon-web-services - 将 DynamoDB 表复制到另一个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010375/

相关文章:

node.js - 我目前在端口 3000 上运行我的亚马逊 ec2 实例。我想改为在端口 80 上运行它。我该怎么做?

php - 如何使用 AWS 托管 PHP 文件?

amazon-web-services - Cloudformation - 在 map 中定义默认值

php - aws.push 到多个环境

amazon-dynamodb - 在 Dynamodb 中查询而无需哈希键或扫描

python - AWS DynamoDB ExclusiveStartKey 默认值

tomcat - Grails 插件安装错误 : java. lang.NoClassDefFoundError: org/grails/plugins/tomcat/fork/ForkedTomcatServer$_findSystemClasspathJars_closure3

php - QueryFilter 在 DynamoDB 中不起作用

amazon-web-services - 使用 CLI 批量写入项目时出现资源未找到错误

java - AWS DynamoDBMapper 保存方法不断抛出 `DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted`