如何将DynamoDB数据导出并导入至其他AWS账号
DynamoDB跨AWS账号数据迁移操作流程
1. 源账号端操作(你的个人账号)
- 为目标DynamoDB表创建按需备份:进入DynamoDB控制台,找到对应表,点击「备份」选项卡,选择「创建备份」,自定义备份名称后等待备份任务完成。
- (可选)跨区域迁移场景:如果需要将数据迁移到其他区域的客户账号,先在备份详情页选择「复制备份」,选择目标区域完成备份复制后,再对新生成的跨区域备份做后续配置。
- 配置备份跨账号权限:进入备份详情页的「权限」板块,添加客户的AWS账号ID为授权对象,勾选「恢复备份」权限。
- 特别注意:如果你的备份开启了KMS自定义密钥加密,需要同时给客户账号授予对应KMS密钥的解密权限,否则客户账号无法读取备份内容。
- 记录当前备份的ARN备用,ARN格式参考:
arn:aws:dynamodb:<区域ID>:<你的账号ID>:table/<表名>/backup/<备份唯一ID>。
2. 目标账号端操作(客户的AWS账号)
- 登录客户账号的AWS控制台,切换到和源备份相同的AWS区域,进入DynamoDB控制台选择「从备份恢复」功能。
- 粘贴之前记录的源账号备份ARN,填写要恢复的目标表名称,按需配置读写容量模式(建议和原表配置保持一致,选择按需模式无需提前规划容量)。
- 如果原备份使用了自定义KMS加密,恢复时可选择客户账号下的KMS密钥对新表进行加密。
- 提交恢复任务后等待完成,GB级以内的表通常10~30分钟即可恢复完成。
小表快速迁移备选方案
如果你的表数据量小于1GB,也可以用本地中转的方式快速迁移:
- 源账号侧执行
scan命令导出全表数据到本地JSON文件,命令示例:aws dynamodb scan --table-name <你的源表名> --region <源区域ID> > dynamo_export.json - 客户账号侧提前创建好表结构完全一致的目标DynamoDB表,执行批量写入命令导入数据,命令示例:
aws dynamodb batch-write-item --request-items file://dynamo_export.json --region <目标区域ID>
注意:batch-write-item接口单次最多支持写入25条数据,数据量较大时需要拆分导出文件或使用批量写入脚本做分片处理。
迁移校验
任务完成后,对比源表和目标表的总条目数、随机抽样的多条数据内容,确认迁移数据无遗漏或错误即可。
内容的提问来源于stack exchange,提问作者Jackie
相关产品推荐
相关产品推荐

