我配置正则表达式:((?!^(sb_proinfo)$).)* ,不同步sb_proinfo这个表,但是每次sb_proinfo有数据写入的时候,otter就会报:
pid:18 nid:1 exception:setl:com.alibaba.otter.node.etl.select.exceptions.SelectException: com.alibaba.otter.shared.common.model.config.ConfigException: no such DataMedia , the namespace = edu_jyg2 name = sb_proinfo at com.alibaba.otter.node.etl.select.selector.MessageParser.parse(MessageParser.java:209) at com.alibaba.otter.node.etl.select.selector.canal.CanalEmbedSelector.selector(CanalEmbedSelector.java:254) at com.alibaba.otter.node.etl.select.SelectTask.processSelect(SelectTask.java:236) at com.alibaba.otter.node.etl.select.SelectTask.access$300(SelectTask.java:94) at com.alibaba.otter.node.etl.select.SelectTask$1.run(SelectTask.java:208) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) at java.util.concurrent.FutureTask.run(FutureTask.java:149) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:738) Caused by: com.alibaba.otter.shared.common.model.config.ConfigException: no such DataMedia , the namespace = edu_jyg2 name = sb_proinfo
原提问者GitHub用户 Bruce2jiang
((?!^(sb_proinfo)$).)* 是用来匹配不希望同步的表的。它的详细注释如下: ((?!^(sb_proinfo)$).)* :这是一个匹配正则表达式,它表示不匹配 sb_proinfo 这个表。其中的 ((?!^(sb_proinfo)$).)* 是一个零宽断言,它的作用是确保匹配字符串不会包含 sb_proinfo 这个字符串。零宽断言的意思是,在匹配字符串的过程中,不会检查字符串是否包含这个目标字符串,只会检查是否匹配成功。 ^ :匹配字符串的开始位置。 $ :匹配字符串的结束位置。 .* :匹配任意字符,直到匹配失败为止。 因此,这个正则表达式会匹配除了 sb_proinfo 这个表之外的任何表。如果你希望只匹配 sb_proinfo 这个表,可以将 ((?!^(sb_proinfo)$).)* 的部分改为 ^sb_proinfo.$ 或者更简单的 sb_proinfo.。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。