将DynamoDB表复制到另一个帐户 [英] Copy DynamoDB table to another account

查看:190
本文介绍了将DynamoDB表复制到另一个帐户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How Do i Copy DynamoDB table to another AWS account ?

表大小为20 GB。

我无法使数据管道正常工作-我永远得到WAITING_FOR_RUNNER,所以我更喜欢另一种方法

I couldn't make the data pipe to work - I get WAITING_FOR_RUNNER forever, so I prefer a different approach

推荐答案

推荐AWS的最佳实践是使用AWS Data Pipeline服务,同时使用以下预定义的管道模板:

The recommended and best-practice by AWS to do this is to use AWS Data Pipeline service while utilizing pre-defined pipeline templates named:


  1. 导入DynamoDB备份数据从S3

  2. 将DynamoDB表导出到S3

关于此主题的完整教程很好可以在 AWS数据管道文档 。

The full tutorial on this topic is well written and available in AWS Data Pipeline Docs.

该教程未涵盖的仅有两个陷阱:

The only two gotchas that tutorial doesn't cover are:


  1. 您可能需要使用ACL或存储桶策略在两个AWS账户之间共享S3存储桶

  2. e将DDB表从按需或按比例扩展吞吐量设置模式更改为手动吞吐量,并为表设置足够的读/写容量,以便您的EMR作业可以合理地扩展。请记住,EMR作业执行数据导出/导入操作将消耗的RCU和WCU的比率是您从上述模板创建数据管道时设置的参数,以后可以更改(如果您在Architect中编辑管道)。提前进行此计划可确保,例如,如果在运行导出之前通过基于慢速使用模式的Auto-Scaling将RCU设置为非常低,则永远不会试图从DDB读取数据而使您的EMR作业卡住。导入时,WCU也有类似的观察结果。

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

I can confirm migrating tables much larger than 20GB using this method and it was most reliable and fault-tolerant method for this case. Other methods based on some libraries or code written just for this purpose might be much harder to set-up and require external dependencies. Some of them failed early for me and it was caused by those tools not being optimized for large datasets.

这篇关于将DynamoDB表复制到另一个帐户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆