质量规则参数配置

本文为您介绍质量规则的参数配置信息。

数据表参数配置

数据表规则配置

模板类型

描述

完整性/唯一性

完整性-字段空值校验/字段空字符串校验

唯一性-字段唯一性校验/字段分组个数校验/字段重复值个数校验

  • 校验字段:选择物理表中的需要校验的字段。

  • 校验表数据过滤:默认关闭,开启后可配置校验表的过滤条件或分区过滤或普通数据过滤,过滤条件将会直接追加至校验SQL中;如校验表有分区过滤需求,建议在调度配置中配置分区表达式,配置后会以校验分区为最小查看粒度查看质量报告。填写数据过滤内容,例如:

    id = 12 --单表

    T1.id=12 and T2.name = "张三" --双表

及时性

  • 时间函数比较

    • 校验字段、校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 比较项:比较时间的表达式,内置${column}、${bizdate}参数。

      • 基于比较字段定义表达式,${column}为比较项内置参数,例如:${column}、substr(${column})

      • 日期函数比较选择${bizdate},则会被识别为业务日期。

    • 时间差:支持选择校验字段-(减)比较字段比较字段-(减)校验字段,取单位项小数点前的值,不做四舍五入。例如:发货日期和下单日期需要在同一天,则校验项- 比较项目可设置为小于1天。如图所示设置,校验字段-比较字段>=1天 and 校验字段-比较字段<1天。

      image.png

  • 单表字段比较

    • 校验字段、校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 比较字段:选择物理表中需要比较的字段。

    • 时间差:支持选择校验字段-(减)比较字段比较字段-(减)校验字段,取单位小数点前的值,不做四舍五入。例如:发货日期和下单日期需要在同一天,则校验项-比较项目可设置为小于1天。如图所示设置,校验字段-比较字段>=1天 and 校验字段-比较字段<1天。

      image.png

  • 两表时间字段比较

    • 校验字段、校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 选择比较表:选择物理表中的需要比较的表及该物理表的需要比较的字段。

    • 关联表达式:内置数据表参数T1、T2,T1为检测表,T2为比较表,例如:T1.id = T2.id。

    • 时间差:支持选择校验字段-(减)比较字段比较字段-(减)校验字段,取单位项小数点前的值,不做四舍五入。例如:发货日期和下单日期需要在同一天,则校验项- 比较项目可设置为小于1天。如图所示设置,校验字段-比较字段>=1天 and 校验字段-比较字段<1天。

      image.png

有效性

  • 字段格式校验

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 内容识别形式:可选择识别表达式正则表达式字符串匹配(%)开头是中间是结尾是,表达式用于匹配符合规则的数据。

    • 内容识别形式-识别表达式:输入SQL表达式函数。例如${column1}>0,其中${column}为内置参数。

    • 内容识别形式-正则表达式:可以输入正则表达式,同时可以选择内置正则表达式,包括手机号固定电话身份证号邮箱银行卡号等。

    • 内容识别形式-字符串匹配(%):标准的like表达式,使用%代表通配符,如匹配a开头的数据,输入a%即可。

    • 内容识别形式-开头是:输入待匹配字符串,会自动按照模式在尾部拼接%,例如:a%。

    • 内容识别形式-中间是:输入待匹配字符串,会自动按照模式在尾部拼接%,例如:%a%。

    • 内容识别形式-结尾是:输入待匹配字符串,会自动按照模式在尾部拼接%,例如:%a。

  • 字段长度校验

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 字段长度:用于字段长度有效性验证,支持枚举区间设置。选择枚举值的校验示例:对比3、6、9,生成的校验SQL为x in (3, 6, 9)

  • 字段值域校验

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 值域类型:根据实际业务选择。

      • 文本:用于对文本有效性进行验证,需要确保校验字段为文本类型。需设置值域范围,支持枚举区间设置。选择枚举值的校验示例:对比张三和李四,生成的校验SQL为 x in ("张三", "李四")

      • 数字:用于对数值有效性进行验证,需要确保校验字段为数值类型。需设置值域范围,支持枚举区间设置。选择枚举值的校验示例:对比3、6、9,生成的校验SQL为x in (3, 6, 9)

      • 日期:用于对日期有效性进行验证,需要确保校验字段为日期类型(date)。需设置日期格式,支持年月年月日年月日-时分秒设置。例如:年:2021~2022,年月:2022-01~2022-02。

      • 时间戳:用于对时间戳有效性进行验证,需要确保校验字段为时间戳类型(timestamp)。

      • 自定义:用于对多种格式进行校验,同时支持使用函数,填写的内容会直接下发到数据源执行。

        需设置值域范围,支持枚举区间设置。

        选择枚举值的校验示例:对比3、6、9,生成的校验SQL为x in (3, 6, 9)

        选择区间设置的校验示例:值域范围为最小值y1~最大值y2;假设被对比字段是x,则最后校验SQL为 x >= y1 and x <= y2

        说明
        • 自定义时的字段格式,例如10和"10"在不同数据源执行可能不同。

        • 需要保证所使用函数在校验质量的数据源有效。

  • 码表参照对比

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 数据源类型:选择数据源类型。

    • 数据源:选择对应数据源类型的数据源。

      说明
      • 为了性能考虑,跨数据源最多只会读取1000条码表数据进行对比,建议码表和被检验表在同一数据源。

      • 跨数据源对比字段会被自动转换为string类型, 部分特殊字段类型可能会出现异常情况。建议码表中的字段类型和校验字段类型都是string或其他相同类型。

    • 码表:选择目标码表。

    • 码表名称:输入码表名称,作为质量规则配置时的提示信息。

    • 码表参照字段:选择码表中对应的参照字段。

      说明

      码表参照表是判断某个字段是否在码表中,需要选择一个对比的字段。例如判断用户详情表里的用户ID是否都是注册用户。

    • 码表过滤条件:设置分区表的过滤条件,对数据进行过滤。

  • 数据标准码表参照对比(需开通数据标准模块):

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 码表:选择在数据标准下已发布状态的码表,如需创建码表,请参见新建和管理标准代码(码表)

    • 码表参照:根据此处选择的参照值和字段值进行比较,可选代码值代码名称代码英文名

一致性

  • 单表字段值一致性比较

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 比较字段:选择物理表中的需要比较的字段。

  • 单表字段统计值一致性比较

    • 统计方式:可统计字段计数、字段最大值、字符重复率等,详情请参见指标稳定性的统计方式描述。

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 比较字段:选择物理表中需要比较的字段。

  • 单字段业务逻辑一致性比较

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 识别表达式:输入SQL表达式函数。例如${column1}>0,其中${column}为内置参数。

      说明
      • 识别表达式支持使用函数,但需要注意执行时的数据库需要支持该函数。

      • 支持多个字段之间的业务逻辑的校验。如总销售额=单价*销售数量,校验总销售额是否出错可以用${total_sales}=${unit_price}*${sales_volume}

  • 两表字段值一致性比较

    • 校验字段选择比较表关联表达式数据过滤:详情请参见及时性两表时间字段

    • 关联方式:会影响数据结果的总行数、正常行数、异常行数的计算,可以通过预览SQL查看具体逻辑。支持left join、right join、inner join、full join四种关联方式。

      • left join:以校验表为准,计算总行数、正常行数等指标。

      • right join:以对比表为准,计算总行数、正常行数等指标。

      • inner join:以校验表和对比表匹配上的数据为准,计算总行数、正常行数等指标,适用于只针对匹配数据校验的情况。

      • full join:以校验表和对比表的所有数据为准,计算总行数、正常行数等指标,适用于两表强一致性保障的场景。

  • 两表字段统计值一致性比较

    • 统计方式:可统计字段计数、字段最大值、字符重复率等,详情请参见指标稳定性的统计方式描述。

    • 校验字段选择比较表校验表数据过滤:详情请参见及时性两表时间字段

    • 对比表数据过滤:填写数据过滤内容,例如:city='beijing'

  • 跨源两表字段统计值一致性比较

    • 统计方式:可统计字段计数、字段最大值、字符重复率等,详情请参见指标稳定性的统计方式描述。

    • 校验字段:选择物理表中的需要校验的字段。

    • 数据源类型:选择该物理表的数据源类型。

    • 数据源:选择该物理表所属的数据源

    • 选择比较表:选择物理表中需要比较的表及该物理表需要比较的字段。

    • 校验表数据过滤:填写数据过滤内容,例如:

      id = 12 --单表

      T1.id=12 and T2.name = "张三" --双表

    • 对比表数据过滤:填写数据过滤内容,例如:city='beijing'

  • 两表字段业务逻辑一致性比较

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 业务逻辑:输入SQL表达式函数。例如${column1}>0,其中${column}为内置参数。

      说明

      支持多个字段之间的业务逻辑的校验。如总销售额=单价*销售数量,校验总销售额是否出错可以用${T1.total_sales}=${T2.unit_price}*${T2.sales_volume}

稳定性

  • 表稳定性校验/表波动性校验

    • 统计方式:可统计字段计数、字段最大值、字符重复率等,详情请参见指标稳定性的统计方式描述。

    • 校验表数据过滤:详情请参见完整性/唯一性的描述。

  • 字段稳定性校验/字段波动性校验

    • 校验字段校验表数据过滤:详情请参见完整性/唯一性的描述。

    • 统计方式:可统计字段计数、字段最大值、字符重复率等,详情请参见指标稳定性的统计方式描述。

自定义SQL

  • 自定义统计指标校验

    • 自定义SQL:支持select查询语句,查询对象必须包含主表。例如:

      select sum(sale) from tableA where ds=${bizdate};

  • 自定义数据详情校验

    • 总行数SQL:填写总条数的统计SQL。例如:select count(*) from tableA where ds=${bizdate};

    • 异常行数SQL:填写异常行数的统计SQL。例如:select count(*) from tableA where ds=${bizdate} and age<0;

    • 异常数据SQL:填写异常数据的统计SQL。例如:select ${t1.c1} as dataphin_quality_error_data from ${t1}  where ds=${bizdate} and ${t1.c1}<0;

数据表校验配置说明

模板类型

配置项

描述

完整性

异常行数/正常行数/异常率/正常率

  • 正常行数:唯一值行数。

  • 正常率:唯一值行数/总行数。

  • 异常行数:总行数-正常行数,即count大于2的sum

  • 异常率:1-正常率或异常行数/总行数。

    说明

    唯一值定义:仅出现一次的记录。即分组后count=1的组。

唯一性

异常行数/正常行数/异常率/正常率

  • 正常行数:唯一值行数。

  • 正常率:唯一值行数/总行数。

  • 异常行数:总行数-正常行数,即count大于2的sum

  • 异常率:1-正常率或异常行数/总行数。

    说明

    唯一值定义:仅出现一次的记录。即分组后count=1的组。

统计值

指去重值定义,count distinct后的数据。

统计值(重复行数/重复率)

  • 重复行数用于检查数据中重复了的行数的多少,仅计算多出来的行数,算法为总行数-去重行数。

  • 重复率=重复行数/总行数。

  • 如果需要重复数据的全部行数/重复率计算,可以使用唯一值校验模板的异常行数/异常率指标。

及时性、有效性

异常行数/正常行数/异常率/正常率

  • 正常行数:唯一值行数。

  • 正常率:唯一值行数/总行数。

  • 异常行数:总行数-正常行数,即count大于2的sum

  • 异常率:1-正常率或异常行数/总行数。

    说明

    唯一值定义:仅出现一次的记录。即分组后count=1的组。

一致性

统计差值、统计差异率(%)

统计差值:校验字段-对比字段。

统计差异率:校验字段/对比字段。

稳定性

统计值(1天波动率、7天波动率、30天波动率)

与1天、7天、30天前采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。

自定义SQL

异常行数/正常行数/异常率/正常率

  • 正常行数:唯一值行数。

  • 正常率:唯一值行数/总行数。

  • 异常行数:总行数-正常行数,即count大于2的sum

  • 异常率:1-正常率或异常行数/总行数。

    说明

    唯一值定义:仅出现一次的记录。即分组后count=1的组。

统计值(1天波动率、7天波动率、30天波动率)

与1天、7天、30天前采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。

指标参数配置

指标规则配置

模板类型

描述

唯一性

字段分组个数校验/字段重复值个数校验:需配置数据过滤。

数据过滤:默认关闭,开启后可配置校验表的过滤条件或分区过滤或普通数据过滤,过滤条件将会直接追加至校验SQL中;如校验表有分区过滤需求,建议在调度配置中配置分区表达式,配置后会以校验分区为最小查看粒度查看质量报告。填写数据过滤内容,例如:

id = 12 --单表

T1.id=12 and T2.name = "张三" --双表

稳定性

字段稳定性校验/字段波动性校验

  • 数据过滤:与指标规则配置的唯一性描述一致。

  • 统计方式:选择指标的统计方式。

    • 字段计数:字段COUNT数与设定的期望数字进行比较,即固定值校检。

    • 字段唯一值计数:去重后的字段COUNT数与设定的期望数字进行比较,即固定值校检。

    • 字段汇总值:字段汇总值, 取该字段的SUM值,与固定值进行比较。

    • 字段平均值:取该字段的平均值与设定的固定值进行比较。

    • 字段最大值:字段最大值,取该字段的最大值,与阈值进行比较。

    • 字段最小值:字段最小值,取该字段的最小值,与阈值进行比较。

    • 字段重复行数:重复值个数与固定值进行比较(总行数减去去重后的个数,即字段重复值的个数)。

    • 字段重复率%:即字段重复个数/总行数,重复值个数与总行数的比率与一个固定值进行比较。

    • 字段分组个数:取该字段的分组后的个数与设定的固定值进行比较。

    • 字段空值行数:取该字段的空值数与设定的固定值进行比较。

    • 字段空值率:即字段空值个数/行数,空值的个数与行总数的比率与一个固定值进行比较。

指标校验配置

模板类型

配置项

描述

唯一性

字段分组个数

取该字段的分组后的个数与设定的固定值进行比较。

统计值(重复行数/重复率)

  • 重复行数用于检查数据中重复了的行数的多少,仅计算多出来的行数,算法为总行数-去重行数。

  • 重复率=重复行数/总行数。

  • 如果需要重复数据的全部行数/重复率计算,可以使用唯一值校验模板的异常行数/异常率指标。

稳定性

统计值

指去重后的值,count distinct后的数据。

统计值(1天波动率、7天波动率、30天波动率)

与1天、7天、30天前采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。

均值波动检测(7天波动、30天波动)

基准值是最近7天、30天的表行数的平均值,对比最近7天、30天平均值的波动率。

统计值(相比当月1号天波动率、相比上月波动率、相比上年波动率)

与本月1号、上月、上年采集的表行数进行比较,对比波动率,再与设定的阈值进行比较,只要有一个不符合规则,则触发报警。

实时元表参数配置

离线链路对比参数配置

实时数据与离线数据在使用相同统计路逻辑时,实时离线数据核对质量规则可以检测数据之间的差异。如果差异较大,可能存在数据质量的问题。

参数

描述

校验字段

选择需要校验的字段。

指标算子

选择数据的算法。

对象形式

选择单值数据多值数据

时间限定条件

选择时间限定的字段。

开启条件限定

选择开启关闭条件限定。

离线数据

下拉选择离线数据表。

离线取数

默认关闭,开启后通过SQL语句配置离线数据表的取数。

时区设置

下拉选择时区。

多链路对比参数配置

在业务有强保障场景中,可以通过实时双链路或实时三链路质量规则监测数据。如果有异常,运维人员能够及时切换或备份数据。实时多链路对比质量规则支持监控数据滞留、统计偏差等问题。

参数

描述

校验字段

选择需要校验的字段。

指标算子

选择数据的算法。

对象形式

选择单值数据多值数据

时间限定条件

选择时间限定的字段。

开启条件限定

选择开启关闭条件限定。

对比链路数

选择质量规则的对比链路数。系统支持选择实时三链路对比实时双链路对比

对比链路1

选择实时元表作为对比链路数据:

  • 如果模板选择了实时双链路对比,则只需要选择一个实时元表。

  • 如果模板选择了实时三链路对比,则需要选择两个实时元表。

时区设置

下拉选择时区。