需求描述:

有两类表
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)).)*
GitHub 加速计划 / ca / canal
28.22 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:3 个月前 )
1e5b8a20 - 2 个月前
ff82fd65 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐