创建全域数据表规则
为了提升数据表质量监控的便捷性,Dataphin支持创建校验数据表的质量规则。数据表参与质量规则校验时,如果触发了质量弱监控规则,系统会给您发送告警消息,便于您及时发现并处理异常;如果触发了质量强监控规则,系统会自动中断该表所在的任务,避免脏数据流入下游,同时系统会给您发送告警消息,便于您及时发现并处理异常。本文为您介绍如何配置全域数据表的质量规则。
前提条件
已发布数据表至生产环境。如何发布数据表至生产环境,请参见管理发布任务。
权限校验
质量负责人、普通用户需具备全域表所在数据源的同步读权限,如果没有权限,则需要申请数据源权限,详情请参见管理数据源权限。
步骤一:选择数据表
在Dataphin首页,单击顶部菜单栏的资产。
在资产页面,按照下图操作指引,进入添加质量规则对话框。
在添加质量规则对话框中,选择数据源类型、数据源和数据表后,单击开始配置。
数据源类型支持MaxCompute、Hive、Mysql、Oracle、Microsoft SQL Server、PostgreSQL、SAP HANA、AnalyticDB for PostgreSQL、ClickHouse。
步骤二:新建质量规则
单击新建质量规则。
在新建质量规则对话框,配置参数后单击确定。
参数
描述
规则名称
自定义质量规则的名称。
规则强度
选择质量规则的强弱:
如果您选择了强规则,则质量规则校验的结果为异常时报警并阻塞下游任务节点。
如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。
描述
自定义质量规则描述。不超过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预览。

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

区域 |
描述 |
① |
搜索区:支持按照对象或者规则名称进行快捷搜索。 筛选区:支持按照规则类型、规则模板、规则强度、试跑状态、生效状态进行筛选。 |
② |
展示区:展示规则配置列表的对象名称、规则名称、试跑状态、生效状态等信息。 |
③ |
操作区:您可进行查看、克隆、编辑、试跑、运行、调度配置、删除操作。
|
④ |
批量操作区:
|
步骤三:新建调度
规则配置调度时,可以基于该表格当前已有的调度快速进行配置(每个表上限20个调度规则)。
同一个规则最多能配置10个调度。
调度配置完全一致时,支持自动去重
单击新建调度。
在新建调度对话框,配置参数后单击确定。
参数
描述
调度名称
自定义调度名称。
调度方式
支持定时调度和固定任务触发调度。
定时调度:按照设置的时间,周期性的对数据进行质量检测,适合数据文档产出的场景。
调度周期:包含日、周、月、小时、分钟五种周期类型。
固定任务触发调度:仅在指定的任务完成后,执行配置的质量规则。
说明适用于表的修改任务固定的情况。
触发任务:下拉选择触发任务的任务表。支持选择所有任务均完成触发或任一任务完成即触发。
调度配置列表
调度创建完成后,您可在调度配置列表进行查看、编辑、克隆、删除等操作

区域 |
描述 |
① |
搜索区:支持按照调度名称进行快捷搜索。 筛选区:支持按照定时调度、代码检查触发调度、固定任务触发调度进行筛选。 |
② |
展示区:展示规则配置列表的调度名称、调度类型等信息。 |
③ |
操作区:
|
步骤四:告警配置
单击告警设置后,再单击编辑,在告警设置对话框,选择告警接收人及告警方式后,单击确定。
步骤五:查看质量报告
单击质量报告,查看当前质量规则的规则校验概览和规则校验明细。
单击
图标,查看质量规则的规则校验详情。
单击
图标,查看质量规则的执行日志。

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

序号 |
描述 |
① |
过滤项:您可以通过筛选条件过滤需要查询的质量规则。 您可以根据我负责的、表名称/数据源名称、校验开关、最近一次校验状态、质量负责人、数据源类型、数据源名称、资源负责人条件进行精确筛选。 |
② |
展示区:为您展示表名称、校验开关、生效/总质量规则数、最近一次校验状态、质量负责人、数据源类型、数据源名称、资源负责人数据表质量规则详细信息,同时您可以在操作列对规则进行查看质量规则详情、运行、查看质量报告、转交质量负责人、删除的操作。
|
③ |
批量操作区:您可以批量选择任务,进行运行、转交、开启、关闭、删除操作。 |