1.背景&现状
在大数数据开发过程中,经常会遇到数据迁移或者升级的工作,或者不同的业务方根据需求加工了一下数据,但是认为两边的数据还是一样,因此会出现需要去手动比对数据。那两边数据究竟是不是一致的呢?如果不一致,那又有哪些差异呢?
如果没有平台的话,需要手动写一些SQL 脚本进行去比对的,而且也没有一个评估标准。这样的话效率比较低下。
《阿里巴巴大数据之路》这本其实有提到这样一个平台,但是由于没有对外使用,所以书中介绍比较简单。根据以往的工作经历,开发了一个大数据比对平台,用来辅助验证数据,命名为dataCompare。
主要解决:
(1)验证数据、数据比对,浪费极大的人力成本
(2)没有一套标准,验证的结果难以评估
(3)达到界面交互、勾选或者低代码即可实现自动化数据校验比对
2.目标
(1)采用界面交互、勾选的方式或者低代码的方式即可实现自动化数据校验对比。
(2)数据团队的验数比对效率,至少提升50%左右。
(3)一套统一的数据验证方案,达到数据校验比对的标准规范
3.系统架构设计
前端主要是针对数据校验对比选择表和字段,生成校验任务。
后端主要是采用spring boot、Mybatis 将前端的配置数据写入MySQL表里,然后启动MapReduce或者Spark 任务来进行校验,目前支持的引擎包括:MapReduce、Spark,数据存储包括:HDFS、Hive等,后续考虑扩展更多的数据引擎和存储引擎。
4.核心功能设计
(1)新建库信息
(2)选择需要对比数据信息
(3)执行对比任务
(4)差异发现
选择对比任务,查看差异case 进行排查
5.核心代码开源
https://github.com/zhugezifang/dataCompare
https://gitee.com/ZhuGeZiFang/data-compare