最近更新时间:2023.05.05 10:26:08
首次发布时间:2021.08.13 15:07:15
在数据发生变动的时候,如更改数据 Schema、变更数据源等,需要对变更前后的数据进行对比,通过量化评估两份数据的差异,来避免变更导致的数据变化影响数据下游正常使用的情况发生。
通过数据对比功能,对新旧数据表到字段级进行差异量化对比,精确衡量数据变动的影响,为数据责任人提供参考依据。
产品提供了以下两种模式进行对比。
表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。
SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。
相比表对比,SQL 对比具有以下优势:
如果需要对比多个日期分区,可以在 SQL 中直接查询出某一段日期分区下的数据进行对比,而 Hive 表对比仅可选择一个固定分区。
对比的数据在原 Hive 表基础上,需要进行一些过滤、聚合、Join 等,更适合用 SQL 对比。
有些需要更改表结构的数据变动(如增加字段、更改字段类型等),由于可以先对比数据结果,再进行变更,用 SQL 对比更方便。
新建数据对比的步骤如下:
登录DataLeap控制台。
选择数据质量 > 数据对比,进入数据对比页面。
单击新建对比按钮,进入新建对比页面。
设置对比信息。
选择对比模式,并设置相关参数。
选择校验的内容。
指定两份数据对比的唯一键。
注意
若唯一键重复,可能导致校验报告数据不可信,请提前检验主键唯一性的数据质量。
选择要校验的字段,并对其设置 Diff 逻辑。
说明
该设置仅对两份数据中,唯一键匹配上的数据进行计算。如果匹配上的数量为0,则不会进行计算,报告中也不会展示 Diff 明细。
根据需要,可设置运行参数。
单击提交按钮,完成新建对比。
创建数据对比的相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
参数 | 说明 |
---|---|
*选择对比模式 | 提供表和SQL两种对比模式选项。
|
*引擎 | 提供 EMR 和 LAS 两种引擎选项。
|
表模式 | |
*库名 | 要对比的数据库名称,下拉可选。 |
*表名 | 所选数据库下要对比的数据表名称,下拉可选。 |
表负责人 | 数据表的负责人,选择表名后自动显示。 |
*分区信息 | 数据表的分区字段,选择表名后自动显示。 |
其他过滤条件 | 根据需要增加过滤条件。 |
*唯一键 | 用于两表匹配,表对比默认从数据地图上获取唯一键信息,可以更改。 注意 当主键出现重复值时,会影响对比报告结果。 |
*字段 | 两表对应的校验字段,自动填充,B 表可编辑。 |
*Diff逻辑 | Diff 逻辑支持以下两种计算方式,设置时需至少选择一种。
|
是否查询Diff明细 | 可选择是否查询 Diff 明细。 注意 该查询会额外消耗计算资源,勾选重要字段即可。 |
运行参数 | SQL 语句前的运行参数,如“set 参数名 1=取值;”,按需配置。 |
SQL模式 | |
SQL 别名 | 自行设置的两表的 SQL 别名,便于后续快速理解对比报告。 |
*SQL 语句 | 使用SQL语句对比两个表的数据,按需手动输入。 |
*对比字段 | 解析输入的 SQL 语句后,自动填充,可按需编辑。 |
运行参数 | SQL 语句前的运行参数,如“set 参数名 1=取值;”,按需配置。 |
数据对比创建成功后,可以执行查看对比报告、搜索对比结果、查看运行日志等操作,步骤如下:
登录DataLeap控制台。
选择数据质量 > 数据对比,进入数据对比页面。
在引擎下拉列表中,选择要查看的引擎和对应的实例。
可执行以下操作:
设置搜索信息,快速查找符合条件的对比结果列表。
单击对比结果列表中某条信息操作列的对比报告按钮,进入对比报告页面,可以查看对比总体概况、Diff明细列表等信息。
对比总体概况中,各指标计算逻辑如下:
表A/B行数:select count(*) from table_A/B
行数差值百分比:|数据B行数-数据A行数|/数据A行数
主键匹配上的总行数:select count(*) from table_A inner join table_B on 唯一键A = 唯一键 B
表A/B中匹配上的行数占比:(主键匹配上的总行数)/(表A/B行数)
Diff 明细列表,各字段含义如下:
字段名称(A/B):可以核查字段是否选择正确。
字段类型(A/B):可以对比字段的类型差异。
Diff逻辑:若 Diff值为0,说明两表完全相同;若存在Diff,则可根据 Diff逻辑: Diff值和 Diff值占比(%) 的数值大小进行评估。
说明
创建的数据对比运行成功后,才可以查看对比报告。
单击列表中某条信息操作列的运行日志按钮,可以查看该对比的运行日志。
单击列表中某条运行中的信息操作列的终止按钮,可以终止该对比。
单击列表中某条信息操作列的 ... > 复制按钮,可以复制该对比信息,创建新的对比。
单击列表中某条信息操作列的 ... > 重跑按钮,二次确认后,可以重跑该次校验任务。
单击列表中某条信息操作列的 ... > 分享按钮,可以复制报告地址并分享给他人。
单击列表中某条信息操作列的 ... > 查看SQL 按钮,可以查看该数据对比信息的 SQL 语句。