一、调研目的
实现clickhouse对审计数据库naudit的增量和更新同步,忽略掉删除操作
二、调研方向
1、调研clickhouse是否有忽略delete的配置
2、使用业界组件canal进行同步配置开发
三、调研方案
1、查询clickhouse是否有忽略delete的配置
参考链接:https://clickhouse.com/docs/zh/engines/database-engines/materialized-mysql
结果:clickhouse中并没有直接忽略delete的操作
详细查看clickhouse中MaterializedMySQL的介绍,柳暗花明
参考链接:https://blog.youkuaiyun.com/qq_42082701/article/details/127758123
也就是说
Select * from tableName
Union
Select * from tableName where _sign=-1
就会查询出tableName表中所有的增量、更新以及删除过的数据,符合预期目标
2、使用业界组件canal进行同步配置开发
参考:https://github.com/alibaba/canal/wiki/AdminGuide
http://blog.51yip.com/clickhouse/2536.html
四、总结
为实现clickhouse对mysql数据库的增量、更新,忽略删除同步;
以上两个方案理论上均可实现,方案1中使用MaterializedMySQL中加版本的过滤条件对于之前的开发来说改动最小,近乎只需要在视图层追加一下_sign=-1的数据关联;
参考:https://github.com/SmallHandsomeBoy/web_install