如何在单条AWS DMS选择规则中仅包含xyz_temp并排除其他_temp表?
AWS DMS 单条规则实现精准表筛选方案
关于exclude-object-pattern参数的可行性
ChatGPT提到的exclude-object-pattern并非AWS DMS选择规则的官方支持参数,在AWS官方文档中不存在该配置项,因此这个方案不可行,无法被DMS任务识别执行。
单条规则实现需求的正确方案
要实现「仅包含plf schema下的xyz_temp表,同时排除其他表名含_temp的表」的需求,可通过包含规则+正则过滤器的单条规则完成,具体JSON规则如下:
{ "rule-type": "selection", "rule-id": "1", "rule-name": "Include_plf_xyz_temp_and_non_temp_tables", "object-locator": { "schema-name": "plf", "table-name": "%" }, "rule-action": "include", "filters": [ { "filter-type": "table-name", "match-type": "regex", "value": "^xyz_temp$|^(?!.*_temp).*$" } ] }
规则解析
object-locator:指定目标为plfschema下的所有表rule-action:设置为include,基础逻辑是包含匹配条件的表- 正则过滤器:
^xyz_temp$:精确匹配表名完全等于xyz_temp的表^(?!.*_temp).*$:通过负向预查,匹配表名中**不包含_temp**的所有表- 两者通过
|(逻辑或)组合,最终实现仅包含xyz_temp和非_temp后缀的表,自动排除其他含_temp的表
注意事项
- 确保该规则是DMS任务中的唯一选择规则,或优先级高于其他规则(若存在)
- AWS DMS支持POSIX标准正则表达式,上述写法完全兼容,无需额外配置
内容的提问来源于stack exchange,提问作者Anzar Banday
相关产品推荐
相关产品推荐

