Skip to main content

单表校验规则原理说明

本节主要说明统计函数校验方法的详细计算逻辑。

一条校验规则由五部分组成,前三部分(统计目标、统计函数、过滤语句)是为了得到一个唯一的统计值,后两部分(校验方法、期望值配置)是为了将这个唯一的统计值与质量要求进行比较。

统计函数

统计函数适用字段类型函数说明空值处理
空值数ALL选中字段为NULL的个数相加-
空值率ALL选中字段为NULL的个数相加/整表或分区的总记录数-
空串数字符串空字符的个数相加不包括
空串率字符串空字符的个数相加/表总行数不包括
重复数ALL字段的值有2条记录以上是一样的,则记为1次,最后对总次数相加不包括
重复率ALL重复值个数/总行数不包括
非重复值个数ALL不包括
非重复值占比ALL不包括
枚举值范围ALLin,多个枚举值之间用英文逗号隔开,填写样例:a,b,c如果用户未写入null值,则出现null时,计为枚举值匹配失败
枚举值个数ALLcount(distinct{fieldName})包括
负值比数值类型值小于0的行数/总行数不包括
零值比数值类型值大于0的行数/总行数不包括
正值比数值类型值大于0的行数/总行数不包括
字符串最大长度字符串字段中字符最大长度不包括
字符串最小长度字符串字段中字符最小长度不包括
max数值类型max-
min数值类型min-
avg数值类型avg-
sum数值类型sum-

校验方法

  • 固定值
    1. 根据校验规则中的阈值配置,计算<s> <opt> <except>,返回布尔值。如果为True,表示校验通过,如果为False表示校验未通过;
      1. s 表示经过统计函数计算的数据统计结果;
      2. opt 表示用户在期望值配置中选择的比较符,支持>,>=,<,>=,=,!=;
      3. except 表示用户输入的期望值;
    2. 举例: 配置项为:id字段,空值数; 校验方法:固定值; 期望值配置:>=12 系统会先统计id字段的空值数有多少,假设为s=10,再判断s、opt、except的关系,10<12,返回false,得出校验未通过的结论。
  • 1天波动
    1. 图例: 1天波动.png
    2. 说明: 取出1天前的该规则下的历史数据pre,没有则算0;如果pre=0,那么结果等于0,否则未 (s-pre) / abs(pre) ,s为表内数据统计结果。
  • 7天波动
    1. 图例: 7天波动.png
    2. 说明:取出7天前的该规则下的历史数据pre,没有算0;如果pre=0,那么结果等于0,否则 (s-pre) / abs(pre) ,s为表内数据统计结果。
  • 月度波动
    1. 图例: 月度波动.png
    2. 说明:取出 ${bizdate}-1月 的该规则下的历史数据pre,没有算0,如果这个月没有这么一天,也算0;如果pre=0,那么结果等于0,否则 (s-pre) / abs(pre) ,s为表内数据统计结果。
  • 7天平均值波动
    1. 图例: 7天平均值波动.png
    2. 说明:取出前7天的该规则下的历史数据,如果没有7天,有多少天算多少天,没有算0天。 计算出这些历史数据的平均值avg,0天算0;如果avg=0,那么结果等于0,否则 (s-avg) / abs(avg) ,s为表内数据统计结果。
  • 月度平均值波动
    1. 图例: 月度平均值波动.png
    2. 说明:取出(${bizdate}-1月)的该规则下的历史数据,有多少天算多少天,没有算0天。 计算出这些历史数据的平均值avg,0天算0;如果avg=0,那么结果等于0,否则 (s-avg) / abs(avg) ,s为表内数据统计结果。