canal-adapter字段过滤
canal
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
项目地址:https://gitcode.com/gh_mirrors/ca/canal
·
canal-adapter字段过滤
canal-adapter 更新规则
在连接内的表,任何一张表更新之后,都会触发插入或更新。
table regex 监听表
canal.instance.filter.regex=mufan\\.credit_record,mufan\\.credit_club_member,mufan\\.credit_club,mufan\\.credit_user
过滤表字段,这些字段变化时,不进行更新操作
canal.instance.filter.black.field=mufan.credit_user:modify_time/create_time/wx_openid/create_user
关键代码位置:com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert#parseOneRow
/**
* 字段过滤判断
*/
private boolean needField(List<String> fieldList, List<String> blackFieldList, String columnName) {
if (fieldList == null || fieldList.isEmpty()) {
return blackFieldList == null || blackFieldList.isEmpty()
|| !blackFieldList.contains(columnName.toUpperCase());
} else {
return fieldList.contains(columnName.toUpperCase());
}
}
消费消息
com.alibaba.otter.canal.adapter.launcher.loader.AdapterProcessor#writeOut
具体同步操作
com.alibaba.otter.canal.client.adapter.es.core.service.ESSyncService#sync
Message对象解析工具类
消息CommonMessage的生成,用于canal的关键消息
com.alibaba.otter.canal.connector.core.util.MessageUtil
ERROR c.a.o.canal.adapter.launcher.loader.CanalAdapterService - ## something goes wrong when starting up the canal client adapters:
可能的原因:
- Relation condition column must in select columns.
关联列(关联on的列)必须出现在select中。 - 连接必须是left join
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:3 个月前 )
af937544 - 4 个月前
9f2fc740 - 4 个月前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)