创建全域数据表规则

为了提升数据表质量监控的便捷性,Dataphin支持创建校验数据表的质量规则。数据表参与质量规则校验时,如果触发了质量弱监控规则,系统会给您发送告警消息,便于您及时发现并处理异常;如果触发了质量强监控规则,系统会自动中断该表所在的任务,避免脏数据流入下游,同时系统会给您发送告警消息,便于您及时发现并处理异常。本文为您介绍如何配置全域数据表的质量规则。

前提条件

已发布数据表至生产环境。如何发布数据表至生产环境,请参见管理发布任务

权限校验

质量负责人、普通用户需具备全域表所在数据源的同步读权限,如果没有权限,则需要申请数据源权限,详情请参见管理数据源权限

步骤一:选择数据表

  1. 在Dataphin首页,单击顶部菜单栏的资产

  2. 资产页面,按照下图操作指引,进入添加质量规则对话框。

    image
  3. 添加质量规则对话框中,选择数据源类型数据源数据表后,单击开始配置

    数据源类型支持MaxCompute、Hive、Mysql、Oracle、Microsoft SQL Server、PostgreSQL、SAP HANA、AnalyticDB for PostgreSQL、ClickHouse

    image

步骤二:新建质量规则

  1. 单击新建质量规则

    image
  2. 新建质量规则对话框,配置参数后单击确定

    image

    参数

    描述

    规则名称

    自定义质量规则的名称。

    规则强度

    选择质量规则的强弱:

    • 如果您选择了强规则,则质量规则校验的结果为异常时报警并阻塞下游任务节点。

    • 如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。

    描述

    自定义质量规则描述。不超过128字符。

    模板来源

    系统模板:模板内置参数可配置,适合通用的规则创建。

    自定义SQL:可通过SQL灵活自定义质量监控规则,适用于灵活复杂场景。

    自定义模板:模板预置参数,无需配置,一般用于含业务逻辑的规则创建。

    规则模板

    下拉可选择规则模板,完整性唯一性及时性有效性一致性稳定性自定义SQL

    • 完整性:包括字段空值校验字段空字符串校验

    • 唯一性:包含字段唯一性校验字段分组个数校验字段重复值个数校验

    • 及时性:包含时间函数比较单表时间字段比较两表时间字段比较

    • 有效性:包含字段格式校验字段值域校验码表参照对比

    • 一致性:包含单表字段值一致性比较单表字段统计值一致性比较单字段业务逻辑一致性比较两表字段值一致性比较两表字段统计值一致性比较两表字段业务逻辑一致性比较

    • 稳定性:包含表稳定性校验表波动性校验字段稳定性校验字段波动性校验

    • 自定义SQL:包含自定义统计指标校验自定义数据详情校验

    详情请参见模板类型说明

    规则类型

    规则类型包含系统类型自定义类型

    • 系统类型和模板有关,是模板最基础的属性。

    • 支持用户自定义模板的类型,作为说明和筛选功能。

    规则配置

    详情请参见规则配置说明

    规则校验

    • 数据质量规则校验后,结果会和异常校验的配置进行对比,符合条件则校验结果为不通过;同时触发告警等后续流程。

    • 异常校验可用指标由模板和配置内容决定,支持多种条件的and / or条件,实际配置中建议小于3条。

      详情请参见校验配置说明

    异常归档

    默认,可切换为

    说明

    异常归档开启,异常结果明细自动保存到指定文件服务器,文件名:表名+异常检测时间。

    模板类型说明

    模板类型

    模板详情分类

    模板说明

    完整性

    字段空值校验

    用于对单字段是否是空值进行校验。

    字段空字符串校验

    用于对单字段是否是空字符串进行校验。

    唯一性

    字段唯一性校验

    用于对单字段唯一值/非唯一值进行校验。

    字段分组个数校验

    用于对单字段数据去重值校验。

    字段重复值个数校验

    用于对单字段重复且多余的数据进行校验。

    及时性

    时间函数比较

    用于对单字段和业务日期之间的及时性的对比。

    单表时间字段比较

    用于对同一表的两列的时间差进行比较。

    两表时间字段比较

    用于对不同表的两列的时间差进行比较。

    有效性

    字段格式校验

    用于识别表达式或者正则表达式对单字段的格式进行校验。

    字段长度校验

    用于对单字段的长度进行校验。

    字段值域校验

    用于对单字段的取值范围进行校验。

    码表参照对比

    支持对单字段是否在码表中进行判断。

    一致性

    单表字段值一致性比较

    用于对同一表两个字段原值进行数据的对比。

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

    用于对同一表两个字段进行统计数据的对比,如求和值、最大值等。

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

    用于对同一表多个字段的复杂业务逻辑是否正确进行校验。

    两表字段值一致性比较

    用于对不同表两个字段原值进行数据的对比。

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

    用于对不同表两个字段进行统计数据的对比,如求和值、最大值等。

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

    用于对不同表多个字段的复杂业务逻辑是否正确进行校验。

    稳定性

    表稳定性校验

    用于对表/分区的大小、行数的稳定性进行校验,统计结果和固定值进行比较。

    表波动性校验

    用于对表/分区的大小、行数的波动性进行校验,统计结果和历史进行比较。

    字段稳定性校验

    用于对字段的平均值、最大值等稳定性进行校验,统计结果和固定值进行比较。

    字段波动性校验

    用于字段的平均值、最大值等波动性进行校验,统计结果和历史进行比较。

    规则配置说明

    模板类型

    描述

    完整性/唯一性

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

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

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

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

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

    及时性

    • 时间函数比较

      • 校验字段、数据过滤:详情请参见规则配置说明完整性/唯一性大类的描述。

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

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

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

      • 时间容差:设置校验项减去比较项的值。取单位项小数点前的值,不做四舍五入。例如发货日期和下单日期需要在同一天,则校验项 - 比较项目可设置为小于1天。

    • 单表字段比较

      • 校验字段、数据过滤:详情请参见规则配置说明完整性/唯一性大类的描述。

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

      • 时间容差:设置校验项减去比较项的值。取单位项小数点前的值,不做四舍五入。例如发货日期和下单日期需要在同一天,则校验项 - 比较项目可设置为小于1天。

    • 两表时间字段比较

      • 校验字段、数据过滤:详情请参见规则配置说明完整性/唯一性大类的描述。

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

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

      • 时间容差:设置校验项减去比较项的值。取单位项小数点前的值,不做四舍五入。例如发货日期和下单日期需要在同一天,则校验项 - 比较项目可设置为小于1天。

    有效性

    • 字段格式校验

      • 校验字段数据过滤:详情请参见规则配置说明完整性/唯一性大类的描述。

      • 内容识别形式:可选择识别表达式正则表达式两种方式,表达式用于匹配符合规则的数据。

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

      • 内容识别形式-正则表达式:正则表达式支持使用函数,但需要注意执行时的数据库需要支持该函数。

    • 字段长度校验

      • 校验字段数据过滤:详情请参见规则配置说明完整性/唯一性大类的描述。

      • 字段长度:用于字段长度有效性验证,支持枚举区间设置。选择枚举值的校验示例:对比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表达式函数。例如${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;

    校验配置说明

    模板类型

    配置项

    描述

    完整性

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

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

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

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

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

      说明

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

    唯一性

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

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

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

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

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

      说明

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

    统计值

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

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

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

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

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

    及时性、有效性

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

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

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

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

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

      说明

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

    一致性

    统计差值、统计差异率

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

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

    稳定性

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

    选择的对比周期需要和调度配置的数据分区一致,不一致时可能会报错。

预览SQL

说明
  • 关键信息没有填写完整,预览SQL不可用。

  • 左边为上次保存配置SQL预览,若未配置,则为空;右边为当前配置SQL预览。

image

规则配置列表

您可以在规则配置列表页面查看已经配置的数据表规则信息,并进行查看、编辑、试跑、运行、删除等操作。

image

区域

描述

搜索区:支持按照对象或者规则名称进行快捷搜索。

筛选区:支持按照规则类型规则模板规则强度试跑状态生效状态进行筛选。

展示区:展示规则配置列表的对象名称规则名称试跑状态生效状态等信息。

操作区:您可进行查看克隆编辑试跑运行调度配置删除操作。

  • 查看:可查看规则配置详情。

  • 克隆:可快速克隆规则。

  • 编辑:编辑规则后,需重新试跑。

  • 试跑:试跑后,可单击查看试跑日志

  • 运行:运行后,可在校验记录中查看校验结果。

  • 调度配置:可在弹框中筛选调度类型或用调度名称快捷搜索调度。也支持编辑调度。

  • 删除:删除此质量规则对象将删除对象下的所有质量规则,删除后不可撤销。

批量操作区:

  • 如需批量试跑质量规则的对象,您可单击image的图标进行试跑。

  • 如需批量运行质量规则的对象,您可单击image的图标进行运行。

  • 如需批量调度配置质量规则的对象,您可单击调度配置进行配置。

  • 如需批量开启质量规则的对象的生效状态,您可单击image图标选择开启

  • 如需批量关闭质量规则的对象的生效状态,您可单击image图标选择关闭

  • 如需批量删除质量规则的对象,您可单击image图标选择删除

步骤三:新建调度

说明
  • 规则配置调度时,可以基于该表格当前已有的调度快速进行配置(每个表上限20个调度规则)。

  • 同一个规则最多能配置10个调度。

  • 调度配置完全一致时,支持自动去重

  1. 单击新建调度

    image
  2. 新建调度对话框,配置参数后单击确定

    image

    参数

    描述

    调度名称

    自定义调度名称。

    调度方式

    支持定时调度固定任务触发调度

    • 定时调度:按照设置的时间,周期性的对数据进行质量检测,适合数据文档产出的场景。

      • 调度周期:包含小时分钟五种周期类型。

    • 固定任务触发调度:仅在指定的任务完成后,执行配置的质量规则。

      说明

      适用于表的修改任务固定的情况。

      • 触发任务:下拉选择触发任务的任务表。支持选择所有任务均完成触发任一任务完成即触发

调度配置列表

调度创建完成后,您可在调度配置列表进行查看、编辑、克隆、删除等操作

image

区域

描述

搜索区:支持按照调度名称进行快捷搜索。

筛选区:支持按照定时调度代码检查触发调度固定任务触发调度进行筛选。

展示区:展示规则配置列表的调度名称调度类型等信息。

操作区:

  • 如需编辑质量规则的调度配置,您可单击操作列下image的图标进行编辑。

  • 如需克隆质量规则的调度配置,您可单击操作列下image的图标进行克隆。

  • 如需删除质量规则的调度配置,您可单击操作列下image的图标进行删除。

步骤四:告警配置

  1. 单击告警设置后,再单击编辑,在告警设置对话框,选择告警接收人告警方式后,单击确定

    image

步骤五:查看质量报告

单击质量报告,查看当前质量规则的规则校验概览规则校验明细

  • 单击image图标,查看质量规则的规则校验详情。

  • 单击image图标,查看质量规则的执行日志。

image

全域数据表规则列表

您可以在质量规则列表页面查看已经配置的数据表规则信息,并进行查看、运行、转交质量负责人、删除等操作。

image

序号

描述

过滤项:您可以通过筛选条件过滤需要查询的质量规则。

您可以根据我负责的表名称/数据源名称校验开关最近一次校验状态质量负责人数据源类型数据源名称资源负责人条件进行精确筛选。

展示区:为您展示表名称校验开关生效/总质量规则数最近一次校验状态质量负责人数据源类型数据源名称资源负责人数据表质量规则详细信息,同时您可以在操作列对规则进行查看质量规则详情运行查看质量报告转交质量负责人删除的操作。

  • 查看质量规则详情:可查看数据表质量规则配置详情。

  • 运行:可根据配置的调度或自定义分区来运行数据表。

  • 查看质量报告:可查看数据表对应的质量报告。

  • 转交质量负责人:填写需要转交的质量负责人。

  • 删除:删除此质量规则对象将删除对象下的所有质量规则,删除后不可撤销。

批量操作区:您可以批量选择任务,进行运行转交开启关闭删除操作。

阿里云首页 智能数据建设与治理 Dataphin 相关技术圈