数据校验与订正
简述
本文主要介绍如何使用 CloudCanal 做数据校验和订正。
技术点
逐字段对比
CloudCanal 通过源端数据库扫描数据,批量从对端查出数据,逐字段对比,找出丢失(loss)和差异(diff)数据,记录到日志中。
其中需要解决扫描效率、字段类型兼容、类型精度匹配等问题。
覆盖式订正
采用对端覆盖式订正,对于对端数据源具备 REPLACE 语意的,均可打开订正能力。
所订正的数据为差异数据,即校验任务的校验结果。
一体化
校验和订正作为一个数据任务的两个步骤进行,类似数据同步任务中全量数据初始化和数据同步的关系。
订正步骤可在创建任务时忽略,待校验任务完成后,额外加到任务中来。
重跑
校验和订正任务支持重跑,在订正步骤跑完之后,需要看下效果,可点击重跑按钮再一次执行。
定时执行
校验和订正任务支持定时启动,在完成相应的职能同时,自动记录结果,并清理关联日志。
操作示例
安装 CloudCanal
- 下载、安装并激活 CloudCanal 私有部署版本
迁移同步任务创建
任务管理 > 创建任务
选择源和目标数据库,点击下一步
选择增量同步,并勾选数据初始化,点击下一步
选择同步表、列,点击下一步
创建任务
任务结构迁移、全量迁移、增量同步,正常运行
造差异数据
- 对端数据源删除并修改一些数据
校验订正任务创建
任务详情 > 功能列表 > 创建相似任务
第二步选择数据校验和订正,并勾选校验后订正,其他步骤不需要变动
数据校验和订正任务跑完,并显示状态
重跑数据校验和订正,数据一致
常见问题
目前还存在什么问题?
- 对于对端多出来的数据,无法进行校验,需要配置一个反向的校验任务解决
- 对于无主键、时间戳类型表默认忽略校验,前者无法定位到数据,后者因为时间精度差异,导致定位困难
- 对端数据源如没有实现 REPLACE 能力,则无法开启订正任务
- 源端表如果没有主键,则无法开启订正任务
- 校验和订正任务不支持自定义代码
总结
主要介绍使用 CloudCanal 做数据校验和订正,支持校验订正一体化、单次/定时校验和订正等能力。