You need to enable JavaScript to run this app.
导航

数据对比

最近更新时间2024.03.20 10:55:16

首次发布时间2021.08.13 15:07:15

在数据发生变动的时候,如更改数据 Schema、变更数据源等,需要对变更前后的数据进行对比,通过量化评估两份数据的差异,来避免变更导致的数据变化影响数据下游正常使用的情况发生。
通过数据对比功能,对新旧数据表到字段级进行差异量化对比,精确衡量数据变动的影响,为数据责任人提供参考依据。
产品提供了以下两种模式进行对比。

  • 表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。
  • SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。
    相比表对比,SQL 对比具有以下优势:
    • 如果需要对比多个日期分区,可以在 SQL 中直接查询出某一段日期分区下的数据进行对比,而 Hive 表对比仅可选择一个固定分区。
    • 对比的数据在原 Hive 表基础上,需要进行一些过滤、聚合、Join 等,更适合用 SQL 对比。
    • 有些需要更改表结构的数据变动(如增加字段、更改字段类型等),由于可以先对比数据结果,再进行变更,用 SQL 对比更方便。

1 新建对比

新建数据对比的步骤如下:

  1. 登录 DataLeap 控制台。
  2. 选择数据质量 > 数据对比,进入数据对比页面。
    图片
  3. 单击新建对比按钮,进入新建对比页面。
  4. 设置对比信息。
    1. 选择对比模式,并设置相关参数。
    2. 选择校验的内容。
      1. 指定两份数据对比的唯一键。

        注意

        若唯一键重复,可能导致校验报告数据不可信,请提前检验主键唯一性的数据质量。

      2. 选择要校验的字段,并对其设置 Diff 逻辑。

        说明

        该设置仅对两份数据中,唯一键匹配上的数据进行计算。如果匹配上的数量为0,则不会进行计算,报告中也不会展示 Diff 明细。

    3. 根据需要,可设置运行参数。
  5. 单击提交按钮,完成新建对比。

创建数据对比的相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

参数

说明

*选择对比模式

提供表和SQL两种对比模式选项。

  • 表:对比的对象为两张已持久化到 Hive 的 A 表和 B 表。
  • SQL:对比的对象为两段 SQL 产出的虚拟数据集,该数据尚未持久化到 Hive 表。

*引擎

要使用的引擎实例,提供 EMR 和 LAS 两种引擎选项。

  • 当选择 EMR 时,可从下拉列表中选择一个实例。
  • 当选择 LAS 时,实例默认为 default

说明

EMR支持快捷模式和安全模式两类集群,集群访问模式的相关配置说明请参见绑定 EMR 集群

  • 快捷模式:选择数据表时不会进行鉴权,可选择集群下所有数据表进行对比。
  • 安全模式:选择数据表时会进行数据鉴权,若无该表的读取权限,则无法创建相应的对比。

表模式

*库名

所选引擎下要对比的数据库名称,下拉可选已创建的数据库。

*表名

所选数据库下要对比的数据表名称,下拉可选已创建的数据表。

表负责人

数据表的负责人,选择表名后自动显示。

*分区信息

数据表的分区字段,选择表名后自动显示。
分区取值无需填写引号。例如,可填写date=20201016/hour=10/app=数据质量,无需填写date='20201016'/hour='10'/app='数据质量'。

其他过滤条件

根据需要增加过滤条件。
支持输入语法逻辑与 SQL 一致的条件语句,如 dau>1000 and type in (a,b),无需输入where。

*唯一键

用于两表匹配,表对比默认从数据地图上获取唯一键信息,可以更改。

注意

当主键出现重复值时,会影响对比报告结果。

*字段

两表对应的校验字段,自动填充,B 表可编辑。

*Diff逻辑

Diff 逻辑支持以下两种计算方式,设置时需至少选择一种。

  • 等值匹配:新旧两字段中不相等的取值行数,占旧表总行数的百分比,越小意味着 Diff 越小。计算方式:count(A!=B)/count(A)
  • 差值绝对值:新旧两字段数值差值的绝对值求和,占旧表字段求和的百分比,越小意味着 Diff 越小。计算方式:SUM(|A-B|)/SUM(A)

是否查询Diff明细

可选择是否查询 Diff 明细。
勾选后,若该字段出现 Diff,系统会提供 Diff 数据明细。

注意

该查询会额外消耗计算资源,勾选重要字段即可。

SQL模式

SQL 别名

自行设置的两表的 SQL 别名,便于后续快速理解对比报告。

*SQL 语句

使用SQL语句对比两个表的数据,按需手动输入。

*对比字段

解析输入的 SQL 语句后,自动填充,可按需编辑。
相关参数说明,可参见“表模式”。

运行设置

*执行方式

数据对比采取的执行方式,支持立即执行、定时调度和关联任务三种方式。

  • 立即执行:提交后立刻执行,仅执行一次。
  • 定时调度:根据设定的执行时间,定期重复执行。
  • 关联任务:按照关联任务的调度时间执行。

*执行频率

数据对比的执行频率,仅支持天级。
执行方式选择定时调度时,需设置该参数。

*执行时间

数据对比的执行时间,仅支持北京时间 每天的某个时间点,可自行设定。
执行方式选择定时调度时,需设置该参数。

*任务名称

要关联任务的名称,可通过任务名称关键词或ID进行搜索选择。
执行方式选择关联任务时,需设置该参数。

*运行队列

规则使用的运行队列,支持使用默认队列、自行指定队列两个选项。

  • 使用默认队列:使用系统默认的 yarn 队列,无需手动选择。
  • 自行指定队列:自行选择要使用的 yarn 队列,下拉可选已申请的队列。若未申请 yarn 队列,请前往离线调度 > 队列管理申请。

引擎选择 LAS 时,需设置该参数。

运行参数

SQL 语句前的运行参数,如“set 参数名 1=取值;”,按需配置。

报警配置(可选择是否开启报警配置,开启后则需配置以下参数。)

*报警条件

可通过新增SQL字段按钮增加报警项,每项包括字段名称和报警条件两部分内容。

  • 字段名称:下拉可选进行数据对比的数据表中的字段。
  • 报警条件:每个字段的报警条件支持等值匹配行数等值不匹配行数两个选项,可设置多个,多个报警条件之间的关系默认为,可改为

*报警渠道

仅支持邮箱告警方式。

*报警对象

接收报警信息的用户或值班计划接收人。

  • 用户:输入用户账号关键词后,在下拉列表中选择,支持设置多个。
  • 值班计划:输入值班计划名称的关键词后,在下拉列表中选择。设置后,报警消息将发送至值班计划中的接收人。

说明

可通过查看值班计划按钮,查看值班计划列表及值班设置是否符合预期,并支持添加新值班计划,相关操作说明请参见值班管理

2 管理对比结果

数据对比创建成功后,可以执行查看对比报告、搜索对比结果、查看运行日志等操作,步骤如下:

  1. 登录 DataLeap 控制台。
  2. 选择数据质量 > 数据对比 > 对比结果,进入对比结果页面。
    图片
  3. 引擎下拉列表中,选择要查看的引擎和对应的实例。
  4. 可执行以下操作:
    • 设置搜索信息,快速查找符合条件的对比结果列表。
    • 单击对比结果列表中某条信息操作列的对比报告按钮,进入对比报告页面,可以查看对比总体概况、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 语句。

3 管理定时对比任务

若新建对比采用的执行方式是定时对比,则会生成定时对比任务,您可通过本功能对其进行相应管理,操作如下:

  1. 登录 DataLeap 控制台。
  2. 选择数据质量 > 数据对比 > 定时对比,进入定时对比页面。
    图片
  3. 引擎下拉列表中,选择要查看的引擎和对应的实例。
  4. 可执行以下操作:
    • 设置搜索信息,快速查找符合条件的定时对比任务列表。
    • 单击列表中某条信息操作列的编辑按钮,可以修改该对比信息。
    • 单击列表中某条信息操作列的开启/关闭复合按钮,可以开启/关闭该定时对比。开启后,才会定时执行对比操作。
    • 单击列表中某条信息操作列的删除复合按钮,二次确认后,可删除该定时对比任务。
    • 勾选一条或多条信息后,单击列表下方的批量操作按钮,可以执行相应的批量操作。