概述
需求描述:
有两类表
tbl_ec_document_xxx(tbl_ec_document_11 tbl_ec_document_12 tbl_ec_document_xbk…)
tbl_ec_document_item_xxx(tbl_ec_document_item_11 tbl_ec_document_item_12 tbl_ec_document_item_xbk…)
普通perl正则可使用如下分别匹配含有item 和不含有item的所有表
^tbl_ec_document.((?!(item)).)*$
^tbl_ec_document.*item+
现在想将不含有item的表放入->topic document中
含有item表放入->topic doitem中
但canal中对 ^ $ +不识别
所以按上述正则无法使用
解决方法:
将上述正则修改放入instance.properties 文件中
canal.instance.filter.regex = A.tbl_ec_document.*item.*,A.tbl_ec_document.((?!(item)).)*
canal.instance.filter.query.ddl= true
canal.mq.partitionsNum=3
#kafka topic
#canal.mq.topic= test
# 分区字段一般取主键,如果主键是联合主键,可用^符号连接
canal.mq.partitionHash = A.tbl_ec_document.*item.*:FP^SE,A.tbl_ec_document.((?!(item)).)*:FP
# 有些语句虽然不是ddl 但不是想要的insert update delete dml语句, 可以放入默认other topic中
canal.mq.topic= other
# 动态将不同规则数据放入对应的topic中
canal.mq.dynamicTopic = docitem:A.tbl_ec_document.*_item.*,document:A.tbl_ec_document.((?!(item)).)*
最后
以上就是要减肥老虎为你收集整理的canal匹配两类前缀相同表放入不同kafka topic中的全部内容,希望文章能够帮你解决canal匹配两类前缀相同表放入不同kafka topic中所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复