数据比对与探测利器:dataCompare 平台全解析
在数据仓库、数据湖等大数据项目建设中,数据一致性验证、数据质量探查是确保数据可信的基石,但往往伴随着大量繁琐的SQL编写工作。dataCompare 正是为了解决这一痛点而生,它是一个开源的大数据比对和数据探测平台,致力于通过低代码、可视化的方式,提升数据开发和测试人员的工作效率。
一、平台简介与核心价值
dataCompare 是一个开箱即用的企业级工具,核心价值在于将复杂的数据校验逻辑通过界面配置完成,避免人工反复编写和校验SQL。
1.1 基本概念
- 前端:主要提供可视化的操作界面,供用户针对数据校验对比的需求,选择源表和目标表、配置对比字段,从而快速生成校验任务。
- 后端 :采用 Spring Boot + Mybatis 框架,负责将前端的配置数据持久化到MySQL元数据库。随后,后端会根据任务配置启动分布式计算任务(如 MapReduce 或 Spark)来执行真正的数据校验。
1.2 核心能力
平台主要提供两大核心功能:
- 数据对比:支持不同数据源之间的表级数据比对,自动发现差异数据。
- 数据探针:支持对单张表进行数据质量探测,如空值、枚举值分布等。
1.3 当前已支持的功能
- 界面级交互:数据对比任务支持全界面化配置,低代码、快速生成对比任务。
- 多维对比 :支持量级对比 (行数校验)和一致性对比(字段值校验),并能自动化发现差异数据(case)。
- 多数据源 :目前已支持 MySQL、Apache Hive、Apache Doris 等通过JDBC连接的数据库。
- 可扩展架构:目前支持的执行引擎包括MapReduce、Spark,数据存储包括HDFS、Hive等。项目后续计划扩展更多的数据引擎和存储引擎,以适应更丰富的技术栈。
二、功能介绍详解
2.1 数据对比:从"人工校验"到"自动化发现"
该功能旨在解决多环境、多系统间数据不一致的问题。
- 多源支持 :目前已经支持 MySQL、Apache Hive、Apache Doris 等通过JDBC连接的关系型和大数据数仓。
- 对比维度 :
- 量级对比 :快速比对源端和目标端的记录数是否一致。
- 一致性对比 :支持字段级的数据比对,能够自动发现不一致的具体数据行(差异case)。
- 配置与通知 :
- 通过界面级交互进行任务配置,无需编码。
- 对比任务完成后,支持自动发送邮件告警报告,将对比结果(如差异数据、比对总结)及时推送给相关人员。
2.2 数据探针:洞察数据内在质量
数据探针功能更像是对表数据的一次"健康体检"。
- 低代码探测:只需少量配置即可启动探测任务。
- 内置探针类型 :
- 主键探测:检查表的主键字段是否存在重复或空值。
- 枚举值探测:分析指定字段的值的分布情况,了解数据的枚举规律。
- 空值探测:统计关键字段的空值率,评估数据完整性。
三、技术架构与生态
dataCompare 采用轻量级但又具备强大计算能力的混合架构:
- 后端框架 :Spring Boot + Mybatis,提供稳定的REST API和业务处理能力。
- 元数据存储 :使用 MySQL 5.7.36+ 存储任务配置、数据源信息等。
- 解析引擎 :集成 Antlr,用于解析和处理对比规则。
- 数据计算与存储引擎 :底层可对接 Hive、Spark 等,利用其分布式计算能力处理大规模数据比对,保障性能。
- 前端UI :基于 RuoYi 框架构建,提供了清晰、易用的管理界面。
四、快速运行与部署
您可以通过以下步骤快速在本地启动体验:
-
环境准备:
- JDK 1.8
- MySQL 5.7.36+
- (可选,用于Hive比对) 可访问的Hive环境(参考文档使用Docker快速安装)
-
初始化数据库 :
将项目源码
sql目录下的SQL文件导入MySQL,创建所需的库和表。 -
打包应用 :
在项目根目录执行
mvn clean package -Dmaven.skip.test=true -Ptest,在target目录下获取dataCompare.jar。 -
修改配置 :
在同级目录下准备
application.yml,修改其中的数据库连接信息,指向步骤2初始化的数据库。 -
启动服务 :
执行
java -jar -Dspring.config.location=application.yml dataCompare.jar。 -
访问平台 :
浏览器打开
http://127.0.0.1,使用默认账号 admin/admin123 登录。
五、适用场景
- 数据迁移验收:从业务库(MySQL)同步数据到数仓(Hive)后,快速验证数据是否一致。
- 数据质量监控:定时运行数据探针任务,监控核心表的数据质量变化。
- ETL开发测试:在ETL任务开发过程中,快速比对加工前后的数据,验证逻辑正确性。
- 数据对账:用于不同系统间的交易数据、财务数据的周期性对账。
六、项目源码与结语
dataCompare 作为dromara开源社区的一员,为大数据开发和数据治理领域提供了一款轻便实用的工具。它将重复、易错的数据校验工作标准化、自动化,让技术人员能更专注于数据价值的挖掘。如果您正在寻找一个能够快速上手、灵活配置的数据比对解决方案,不妨尝试一下这个平台。