AWS DMS用通配符映射MySQL到S3时提示‘未找到表’求助
AWS DMS匹配多前缀Schema的解决方案
AWS DMS选择规则里的通配符只支持SQL LIKE语法,不支持正则式的[abc]或[a-c]字符范围匹配——这就是你用这两种写法触发"No Tables Found"错误的原因,DMS会把[abc]%当作文字面去匹配schema名,自然找不到对应对象。
要实现包含所有以a、b、c开头的schema,有两种可行方法:
方法1:添加多条Include规则
直接为每个前缀单独创建选择规则,配置如下:
- 规则1:Schema name填
a%,Table name填%,Action选Include - 规则2:Schema name填
b%,Table name填%,Action选Include - 规则3:Schema name填
c%,Table name填%,Action选Include
这种方式简单直观,DMS会依次匹配并包含所有符合任一前缀的schema及下属表。
方法2:用过滤条件实现单规则匹配
如果不想创建多条规则,可以利用DMS的Filter功能,通过SQL逻辑表达式筛选:
- 创建一条选择规则:Schema name填
%,Table name填%,Action选Include - 在Filter字段中输入:
schema_name LIKE 'a%' OR schema_name LIKE 'b%' OR schema_name LIKE 'c%'
这条规则会先匹配所有schema和表,再通过过滤条件只保留符合前缀要求的对象。
补充:你之前用a%能正常工作,是因为%是LIKE语法中合法的通配符,代表任意长度的任意字符,完全符合DMS的匹配逻辑。
内容的提问来源于stack exchange,提问作者bob3409
相关产品推荐
相关产品推荐

