You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需脚本:如何将超20GB数据追加至已有同结构DynamoDB表?

如何用DMS将S3中的CSV数据追加到已有同结构DynamoDB表

核心配置思路

DMS默认会创建新表,但通过修改目标端点的连接属性,可以强制将数据追加到已有表,全程无需编写脚本,适合20GB以上的大体积数据迁移。


步骤1:配置S3源端点

  • 创建S3类型的源端点,在额外连接属性中指定CSV格式参数,示例如下:
    delimiter=,;headerRowPresent=true;quoteCharacter=";escapeCharacter=\
    
    根据你的实际CSV格式调整分隔符、是否有表头、引号转义符等参数。
  • 确保DMS使用的IAM角色拥有S3 bucket的s3:GetObject和s3:ListBucket权限。

步骤2:配置DynamoDB目标端点

  • 创建DynamoDB类型的目标端点,直接填写已有目标表的名称。
  • 在额外连接属性中添加关键参数,覆盖DMS的默认建表行为:
    dynamodb:overwriteBehavior=append
    
    这个参数告诉DMS将数据追加到已有表,而非创建新表或覆盖数据。
  • 确保IAM角色拥有目标DynamoDB表的dynamodb:PutItem权限。

步骤3:创建并配置迁移任务

  • 任务类型选择迁移现有数据(无需持续复制,因为是一次性从S3导入)。
  • 映射规则设置:
    • 如果CSV字段名和DynamoDB表属性名完全匹配,使用默认的“选择全部表”映射即可。
    • 如果字段名有差异,在映射规则中添加字段映射,手动关联源CSV字段和目标表属性。
  • 任务设置中,根据目标DynamoDB表的吞吐量配置,调整迁移任务的读写速率上限,避免触发表的限流。例如,设置TargetTablePrepMode=DO_NOTHING,防止DMS修改目标表的结构。

步骤4:测试与启动任务

  • 先截取一小部分CSV数据放在测试S3路径,创建测试任务验证数据是否正确追加到目标表,检查字段类型、主键是否匹配。
  • 测试通过后,切换到完整的CSV数据路径启动正式任务,通过DMS控制台监控迁移进度,查看日志排查异常(如主键冲突、格式错误)。

关键注意事项

  • 确保CSV数据的字段类型与目标DynamoDB表属性类型完全一致(如数字字段不能是带引号的字符串),否则会导致导入失败。
  • 若CSV包含主键字段,需提前清理与目标表重复的主键数据——使用append模式时,主键冲突会触发任务报错;如果需要覆盖同主键数据,可将overwriteBehavior改为upsert。
  • 大体积数据迁移时,可开启DMS的任务暂停/恢复功能,避免中途中断需重新执行。

内容的提问来源于stack exchange,提问作者ali tauqeer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:32:24