文档简介:
创建质量规则
数据质量支持自定义规则模板库,并对自定义规则进行统一管理,也可以查看系统内置规则模板详情。
规则维度包括:完整性、唯一性、有效性、准确性、一致性、及时性。
- 完整性:数据在创建、传递过程中无缺失和遗漏,包括实体完整、属性完整、记录完整和字段完整四个方面。
- 一致性:遵循统一的数据标准记录和传递数据信息,主要体现在数据记录是否规范、数据是否符合逻辑。
- 准确性:真实、准确地记录原始数据,无续建数据及信息。数据准确反映其所建模的“真实世界”实体。
- 唯一性:同一数据只能有唯一的标识符。体现在一个数据集中,一个实体只出现一次,并且每个唯一实体有一个键值 且该键值只指向该实体。
- 有效性:数据的值、格式和展现形式符合数据定义和业务定义的要求。
- 及时性:及时记录和传递相关数据,满足业务对信息获取的时间要求。数据交付及时,抽取要及时,展现要及时,数据交付时间过长可能导致分析结论失去参考意义。
规则粒度包括:表级、字段级、跨字段级。
内置规则模版
操作步骤:
- 登录并进入百度智能云数据湖管理与分析EasyDAP。
- 在左侧导航栏,单击数据治理-数据质量。
- 单击上方规则引擎进入规则模板管理页面,即可查看规则列表。
4.点击对应规则名称可以查看该规则详情。
内置规则列表:
表1. 表级规则
|
规则名称 |
描述 |
输出值 |
输入参数 |
完整性 |
字段空值 |
指定字段为空或空字符串,则为1个空值行。 |
空值行数、总行数、空值率 |
|
唯一性 |
字段唯一值 |
指定字段是唯一的,则为1个唯一值行。包含NULL值(NULL值计入唯一值行数)。 |
唯一值行数、总行数、唯一值率 |
|
|
字段重复值 |
指定字段有重复值,则为n个重复值行,n为重复次数。不包含NULL值(NULL值不计入重复值行数)。 |
重复值行数、总行数、重复值率 |
|
有效性 |
正则表达式校验 |
判断指定字段是否满足一定的格式,通过自定义正则表达式进行匹配。不校验NULL值(NULL值计入有效行数),下面正则类型规则相同。 |
无效行数、有效行数、总行数、无效比率 |
正则表达式 |
|
邮箱校验 |
匹配邮箱格式,正则表达式为:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$ |
无效行数、有效行数、总行数、无效比率 |
|
|
身份证校验 |
匹配身份证号码格式,正则表达式为:(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$) |
无效行数、有效行数、总行数、无效比率 |
|
|
IP地址校验 |
匹配IP地址格式,正则表达式为:^(?:(?:1[0-9][0-9].)|(?:2[0-4][0-9].)|(?:25[0-5].)|(?:[1-9][0-9].)|(?:[0-9].)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$ |
无效行数、有效行数、总行数、无效比率 |
|
|
电话校验 |
匹配手机电话号码格式,正则表达式为:^([1][3,4,5,6,7,8,9]\d{9})$ |
无效行数、有效行数、总行数、无效比率 |
|
|
邮编校验 |
匹配邮编格式,正则表达式为:^[1-9]\d{5}$ |
无效行数、有效行数、总行数、无效比率 |
|
|
日期校验 |
匹配日期格式(yyyy-MM-dd),正则表达式为:^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$ |
无效行数、有效行数、总行数、无效比率 |
|
准确性 |
字段平均值 |
指定字段的平均值是否准确。 |
平均值 |
|
|
字段平均值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段平均值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段平均值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段平均值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段平均值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段汇总值 |
指定字段的汇总值是否准确。 |
汇总值 |
|
|
字段汇总值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段汇总值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段汇总值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段汇总值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段汇总值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段最大值 |
指定字段的最大值是否准确。 |
最大值 |
|
|
字段最大值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段最大值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段最大值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段最大值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段最大值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段最小值 |
指定字段的最小值是否准确。 |
最小值 |
|
|
字段最小值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段最小值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段最小值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段最小值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段最小值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
离群值 |
检测指定字段的数据与其他数据差异较大的,3倍标准差。 |
离群值行数、总行数、离群值比率 |
|
|
值域范围 |
指定字段的取值范围是否在规定范围内。 |
无效行数、有效行数、总行数、无效比率 |
值域范围 |
|
枚举值校验 |
指定字段的取值范围是否在枚举值中。 |
无效行数、有效行数、总行数、无效比率 |
枚举值 |
表2. 字段级规则
规则维度 |
规则名称 |
描述 |
输出值 |
输入参数 |
完整性 |
字段空值 |
指定字段为空或空字符串,则为1个空值行。 |
空值行数、总行数、空值率 |
|
唯一性 |
字段唯一值 |
指定字段是唯一的,则为1个唯一值行。包含NULL值(NULL值计入唯一值行数)。 |
唯一值行数、总行数、唯一值率 |
|
|
字段重复值 |
指定字段有重复值,则为n个重复值行,n为重复次数。不包含NULL值(NULL值不计入重复值行数)。 |
重复值行数、总行数、重复值率 |
|
有效性 |
正则表达式校验 |
判断指定字段是否满足一定的格式,通过自定义正则表达式进行匹配。不校验NULL值(NULL值计入有效行数),下面正则类型规则相同。 |
无效行数、有效行数、总行数、无效比率 |
正则表达式 |
|
邮箱校验 |
匹配邮箱格式,正则表达式为:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$ |
无效行数、有效行数、总行数、无效比率 |
|
|
身份证校验 |
匹配身份证号码格式,正则表达式为:(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$) |
无效行数、有效行数、总行数、无效比率 |
|
|
IP地址校验 |
匹配IP地址格式,正则表达式为:^(?:(?:1[0-9][0-9].)|(?:2[0-4][0-9].)|(?:25[0-5].)|(?:[1-9][0-9].)|(?:[0-9].)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$ |
无效行数、有效行数、总行数、无效比率 |
|
|
电话校验 |
匹配手机电话号码格式,正则表达式为:^([1][3,4,5,6,7,8,9]\d{9})$ |
无效行数、有效行数、总行数、无效比率 |
|
|
邮编校验 |
匹配邮编格式,正则表达式为:^[1-9]\d{5}$ |
无效行数、有效行数、总行数、无效比率 |
|
|
日期校验 |
匹配日期格式(yyyy-MM-dd),正则表达式为:^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$ |
无效行数、有效行数、总行数、无效比率 |
|
准确性 |
字段平均值 |
指定字段的平均值是否准确。 |
平均值 |
|
|
字段平均值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段平均值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段平均值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段平均值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段平均值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段汇总值 |
指定字段的汇总值是否准确。 |
汇总值 |
|
|
字段汇总值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段汇总值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段汇总值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段汇总值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段汇总值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段最大值 |
指定字段的最大值是否准确。 |
最大值 |
|
|
字段最大值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段最大值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段最大值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段最大值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段最大值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
字段最小值 |
指定字段的最小值是否准确。 |
最小值 |
|
|
字段最小值1天波动率 |
与1天前的执行结果做比较。 |
1天波动率 |
|
|
字段最小值7天波动率 |
与7天前的执行结果做比较。 |
7天波动率 |
|
|
字段最小值30天波动率 |
与30天前的执行结果做比较。 |
30天波动率 |
|
|
字段最小值7天平均值波动率 |
与前7天的平均值做比较。 |
7天平均值波动率 |
|
|
字段最小值30天平均值波动率 |
与前30天的平均值做比较。 |
30天平均值波动率 |
|
|
离群值 |
检测指定字段的数据与其他数据差异较大的,3倍标准差。 |
离群值行数、总行数、离群值比率 |
|
|
值域范围 |
指定字段的取值范围是否在规定范围内。 |
无效行数、有效行数、总行数、无效比率 |
值域范围 |
|
枚举值校验 |
指定字段的取值范围是否在枚举值中。 |
无效行数、有效行数、总行数、无效比率 |
枚举值 |
表3. 跨字段级规则
规则维度 |
规则名称 |
描述 |
输出值 |
输入参数 |
一致性 |
字段一致性校验 |
指定字段的取值在参考字段的取值中存在(以参考字段为基准)。 |
一致行数、不一致行数、总行数、一致比率 |
|
创建自定义规则
操作步骤:
- 登录并进入百度智能云数据湖管理与分析EasyDAP。
- 在左侧导航栏,单击数据治理-数据质量。
- 单击上方规则引擎进入规则模板管理页面。
- 单击新建规则模板进入创建自定义规则页面。
5.按照提示填写自定义规则表单,可通过单击语义校验对自定义规则进行检查,单击确认按钮即可完成创建。
表单项说明:
名称 |
描述 |
使用限制 |
规则模板名称 |
自定义规则模板名称。 |
只能包含英文字母、数字、中划线和下划线,且以英文字母开头,不大于50个字符 |
规则粒度 |
下拉列表选择表级、字段级、跨字段级。 |
|
规则分类 |
下拉列表选择完整性、唯一性、有效性、准确性、一致性、及时性。 |
|
描述 |
自定义规则描述信息。 |
长度不大于100个字符。 |
规则表达式 |
自定义SQL校验逻辑,支持添加库表、字段和输入参数。最多添加2张表、5个字段参数、2个输入参数;如果有多行输出,只取第一行数据,且数据必须为数值类型。 |
不支持“select * ”语法。库表、字段和输入参数请使用添加参数按钮进行添加,修改参数序号以保证逻辑正确性。 |
规则输出 |
输出可为最大值、最小值、合法行数、合法比率等。 |
如有多个输出值,输出值个数需和规则表达式输出个数一致,用英文逗号“,”进行分隔。 |
举例说明
示例1:查询满足自定义过滤条件的表行数。
规则模板名称:test_sql_1
- 规则粒度:表级
- 规则分类:准确性
- 规则表达式:select count(*) from ${Table1} where ${Table1}.${Column1} > ${Input1} and ${Table1}.${Column2} is not null
- 规则输出:表行数
说明:该自定义规则查询表行数,且需满足条件字段1 ${Table1}.${Column1} 大于自定义输入值 ${Input1}、字段2 ${Table1}.${Column2} 不为NULL,自定义输入值 ${Input1} 需在配置质量作业字段规则时填入。规则输出为“表行数”,对应规则表达式的"count(*)"查询结果。
示例2:查询表的相关自定义统计信息。
规则模板名称:test_sql_2
- 规则粒度:字段级
- 规则分类:准确性
- 规则表达式:select count(*),max(${Table1}.${Column1}),sum(${Table1}.${Column2}),avg(${Table1}.${Column3}) from ${Table1}
- 规则输出:表行数,字段1最大值,字段2汇总值,字段3平均值
说明:该自定义规则查询表行数、字段1 ${Table1}.${Column1} 最大值、字段2 ${Table1}.${Column2} 汇总值、字段3 ${Table1}.${Column3} 平均值。规则输出一一对应,用英文分号“,”分割。
示例3:查询两表按指定字段join关联且满足过滤条件的行数。
规则模板名称:test_sql_3
- 规则粒度:跨字段级
- 规则分类:准确性
- 规则表达式:SELECT count(1) FROM ${Table1} LEFT JOIN ${Table2} ON ${Table1}.${Column1} = ${Table2}.${Column1} WHERE ${Table1}.${Column2} > 0 AND ${Table2}.${Column2} > 0 AND ${Table2}.${Column3} > 0
- 规则输出:表行数
说明:该自定义规则查询表1 ${Table1} 和表2 ${Table2} 按照指定字段left join并且满足对应过滤条件的表行数。
规则管理
对于自定义规则,可以进行编辑和删除操作。对于系统内置规则,不能进行编辑和删除操作。
操作步骤:
- 登录并进入百度智能云数据湖管理与分析EasyDAP。
- 在左侧导航栏,单击数据治理-数据质量。
- 单击上方规则引擎进入规则模板管理页面。
- 如果要编辑自定义规则,单击对应规则操作栏的编辑按钮,进入规则编辑页面。如果规则已经被质量作业引用,则无法编辑。
- 如果要删除自定义规则,单击对应规则操作栏的删除按钮,即可删除。如果规则已经被质量作业引用,则无法删除。