有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
当源数据库实例中存在较多库表对象,又需要指定多个名称具有相似性的对象进行同步时。可选择“高级选择模式”进行同步对象的选择,以提升配置效率。
“高级匹配模式”支持模糊匹配与精确匹配的模式以选择需要同步的对象。模糊匹配支持正则表达式。

精确匹配

1. 新建 CDC 任务,在设置对象阶段,在选择对象行中勾选高级选择模式。即可进入高级匹配。单击新增则会弹出规则编辑窗口。如下所示:



2. 选择精确匹配,然后在文本框中输入需要精确匹配的“数据库名”,要求输入的数据库名在源实例中必须存在且名称完全一致,否则将匹配不成功,在预校验阶段将会失败。
在文本框后,勾选整库,则源表行将无需输入,代表“精确匹配”的数据库整库进行同步。
若不选择整库,在源表中选择精确匹配,并且在文本框中输入需要匹配的表名。即可将指定的数据库指定的表同步至目标端 LibraDB。
3. 在目标库和目标表输入需要同步到目标 LibraDB 中的库名和表名。既可以选择与源端一致,也可以自定义输入“库名”和“表名”。自定义输入代表同步的表和库需要映射为另外的名字。

模糊匹配

模糊匹配的配置入口与精确匹配一致。
支持源库和源表使用不同的匹配模式。
模糊匹配仅支持正则表达式匹配。
若源库选择精确匹配,源表选择模糊匹配。则代表同步指定数据库中的被匹配上的表。
若源库选择模糊匹配,源表选择精确匹配。则代表仅同步匹配成功的库中的指定的表。
若源库和源表均选择模糊匹配。则代表同步匹配成功的库中的包含匹配规则的表(双重模糊匹配)。
在未开启多表归并场景下,源对象模糊匹配时候,仅支持选择与源端一致。无法对模糊匹配的表进行对象名映射。

匹配规则排序

按照规则表的顺序,从上到下依次对每条规则做判断。当判定命中某条规则后,匹配过程结束,按照该条规则执行逻辑,即忽略后面的规则。
可通过在高级选择模式列表中单击规则行操作列的上移下移,以调整规则的优先级。

匹配举例

如源端实例中存在4个 database,分别为 db1、2db、db_1、1db1。
每一个 database 中均包含5张表,分别为 tbl_1、tbl_2、1_tbl_1、2_tbl、tbl_12。
选择不同的匹配方案则会有不同的结果,举例如下:
源库选择精确匹配 “db1”,源表选择模糊匹配 “tbl_*”。则代表同步 “db1” 数据库中的所有能够匹配 “tbl_*” 的对象。如上表的名称,所有表均能匹配上。
若需要同步 “db1” 库中的所有以 “tbl_” 开头的表,则需要 源库选择精确匹配 “db1”,源表选择模糊匹配 “^tbl_*”,这样就只有 tbl_1、tbl_2、tbl_12 被匹配中。
若需要同步所有以 db 开头的库中的所有以 “tbl_” 开头的表。 则需要源库和源表都选择模糊匹配。源库的匹配关键字为 “^tb*”,源表的匹配关键字为 “^tbl_*”。

正则表达式检测工具

如无法判断是否能够匹配上,控制台提供了正则表达式检测工具。单击正则表达式检测工具,则可弹出“检测工具”。可在待检测字符串中输入待匹配的字符串列表,每一个字符串一行,无需加引号。然后在下方的正则表达式中输入正则表达式后,匹配结果只有在上面的字符串全部匹配成功后才会显示匹配成功。若存在某两项匹配失败,则会在失败项中显示匹配失败的字符串。