数据比对功能可对两个Hive表进行逐字段级别的比对,一般用于当重要表的加工逻辑调整后或者模型重构后,为了确保加工出来的新数据和原有数据的一致性,需要和原有数据进行比对。

  • 如果是加工逻辑调整,比对结果一致或者差异可解释并能接受,则认为新的逻辑可以提交上线。
  • 如果是模型重构,比对结果反应新的模型数据正确,则可安排老模型下线、迁移。

当前,比对方式支持全量比对抽样比对,关联模式支持主键关联MD5关联

  • 一般建议采用主键关联,比对速度更快。
  • 如果不确定两个表的主键或没有主键时,可采用MD5关联

MD5关联是指,将所选字段的值通过拼接后计算MD5值,之后将两表的MD5值进行等值关联。
数据比对时,可支持选择哪些字段进行比对、支持配置字段映射、支持设置比对忽略项(空值与0、空值与空串、字段类型忽略、精度差异忽略)。

说明:目前所有项目成员都可以访问数据比对,但是仅能比对自己有读权限的表,并且不能操作其他人的数据比对任务。

数据比对任务创建

在数据比对页面的左上角提供了任务创建的入口,点击新建任务按钮进入创建页面。在任务创建过程中用户需要完成比对对象和规则的配置。
数据比对 - 图1

设置比对对象

在设置比对表模块中,需要完成源表比对表以及任务名称的配置。当配置完源表和比对表后,任务名称会自动生成,格式为“年月日_比对+源表名+和+比对表名”,支持自定义修改。
数据比对 - 图2

设置规则

设置规则步骤需要进行比对方式关联模式源表主键以及字段映射

  • 比对方式:包括全量比对抽样比对,当选择抽样比对时,可设置抽样数,默认为10%。
  • 关联模式:包括主键关联MD5关联,当选择MD5关联时,不需要配置源表主键
  • 源表主键:对主键进行关联比对,支持联合主键的关联比对。设置为源表主键的字段,在字段映射中为必选项且不可编辑。
    说明:
    主键关联:通过设置源表的主键和比对表进行关联,对源表的每条记录和比对表的记录,逐个字段进行比对。
    MD5关联:将源表和比对表的每条记录,分别串在一起并计算MD5码,通过MD5码进行关联比较。采用MD5比对可能会花费更多的资源和计算时间,一般适用于没有主键的表的比对。
  • 字段映射:除了主键为必选项外,其它字段均可选择是否要进行比对。支持源表字段和比对表字段自动匹配,也支持手动修改。支持忽略项设置。
    忽略项 描述
    忽略0、空值、空串间差异 对于NULL、’’、0、0.0、’0’或’0.0’,认为都相同
    忽略字段类型 比如字符串’100’和数字100,认为相同
    忽略精度差异(小于1e-7) 比如一个是1.0000001,另一个是1.0,则认为两者相同

主键关联模式:
数据比对 - 图3

说明:目前暂不支持struct、map、array类型的字段比对。

配置完上述内容后,可单击保存并运行按钮进行任务运行,也可以单击保存暂不运行任务,之后可在形态探查页面的列表中,单击运行按钮进行任务运行。

此外在任务参数中还要设置结果储存位置,设置规则具体如下:

  1. 如果当前项目开通了测试功能,且选择的源表和比对表中有来自测试库的表,则结果存储位置能选择所有您有建表权限的库;
  2. 如果源表和比对表都来自非测试库的表,则结果存储位置能够选择所有您有建表权限的非测试库。

任务实例详情

任务运行后,最新的实例信息会呈现在列表中,并可以通过单击具体的任务ID,快速查看任务配置信息。
在任务列表中,单击实例列表会进入实例列表页面,在该页面中会展示当前任务生成的历史实例,对状态为已完成的实例可单击运行结果日志按钮查看比对结果以及任务运行日志。

在实例详情页中,比对结果展示的内容会根据选择的关联模式不同而稍有不同。

  • 主键关联的比对结果将包括:比对表信息、任务参数信息、表级别比对结果以及字段比对结果。
  • MD5关联的比对结果将包括:比对表信息、任务参数信息、比对规则信息以及表级别比对结果。

其中,比对表信息以及任务参数信息会显示任务配置时的信息。

主键关联模式实例详情

  • 表级别比对结果:
    数据比对 - 图4

  • 字段比对结果:
    数据比对 - 图5

  • 主键仅在本表记录数:
    数据比对 - 图6

    说明:当出现不一致的内容时,可单击表格中数字查看详情。
  • 字段内容不一致:
    数据比对 - 图7

    说明:当出现不一致的内容时,可单击表格中数字查看详情。
  • 主键不唯一情况:当源表主键不唯一时,无法进行数据比对。
    数据比对 - 图8

  • 参数说明:

    参数项 描述
    整体不一致率 计算公式=(1-主键相同字段内容一致的数量/记录数)*100%。
    对于抽样比对,比对表无法计算。
    库表名称 源表和比对表表名称。
    记录数 基于设置的分区和非分区过滤计算得到的记录数。
    主键仅在本表记录数 1. 对于全量比对,源表和比对表会按照主键进行全关联,源表和比对表都会存在“主键仅在本表记录数”;
    2. 对于抽样比对,源表和比对表会按照主键进行左关联,仅源表会有“主键仅在本表记录数”。
    主键相同 字段内容一致、字段内容不一致、不一致率三块结果统计。

MD5关联模式实例详情

  • 比对规则信息:
    数据比对 - 图9

  • 表级别比对结果:
    数据比对 - 图10

  • 仅在本表记录:
    数据比对 - 图11

    说明:当出现不一致的内容时,可单击表格中数字查看详情。
  • 参数说明:

    参数项 描述
    整体不一致率 计算公式=(1-主键相同字段内容一致的数量/记录数)*100%。
    对于抽样比对,比对表无法计算。
    库表名称 源表和比对表表名称。
    记录数 基于设置的分区和非分区过滤计算得到的记录数。
    仅在本表记录数 表示MD5值仅在本表的记录数,对于抽样比对,比对表不会有数据。
    MD5一致记录数 表示源表抽样的记录中,MD5值能在比对表找到的记录数。