AWS DMS删除DocumentDB字段的转换规则失效问题求助
解决AWS DMS迁移DocumentDB时删除指定字段的问题
你当前的规则不生效,核心原因是误用了关系型数据库的列操作规则——DocumentDB是文档型数据库,DMS需要用文档级的转换规则来处理文档内的字段,而非column类型的规则。
正确的映射规则配置
将原规则替换为针对文档字段的删除规则,具体JSON如下:
{ "rules": [ { "rule-type": "transformation", "rule-id": "123", "rule-name": "remove_emails_field", "rule-target": "document", "object-locator": { "schema-name": "lol", "table-name": "users", "field-name": "emails" }, "rule-action": "remove-field", "value": null, "old-value": null }, { "rule-type": "transformation", "rule-id": "1234", "rule-name": "remove_roles_field", "rule-target": "document", "object-locator": { "schema-name": "lol", "table-name": "users", "field-name": "roles" }, "rule-action": "remove-field", "value": null, "old-value": null } ] }
关键修改点说明
- 把
rule-target从column改为document:明确告知DMS这是针对文档型数据的操作 - 把
object-locator里的column-name改为field-name:对应DocumentDB文档中的字段名 - 把
rule-action从remove-column改为remove-field:这是DMS专门针对文档字段的删除动作
额外注意事项
- 确认
schema-name是源端DocumentDB的数据库名称,table-name是要迁移的集合名称,必须和实际环境完全匹配 - 每个规则的
rule-id必须唯一,不能重复 - 如果是增量迁移,建议先停止当前任务,替换规则后重新启动全量迁移(或根据需求选择重新加载任务)
内容的提问来源于stack exchange,提问作者Anton Kim
相关产品推荐
相关产品推荐

