规则模版
规则模板作为数据质量管控的核心基础,已预设表行数校验、字段准确性核查、数据完整性验证等常用监控逻辑,无需用户从零搭建复杂规则。本文档将详细介绍各类规则模板的使用步骤和详细说明。
系统模版
查看规则模版列表
规则模版以列表形式展示,支持按照模版名称进行筛选。
- 登录百度智能云 DataBuilder 控制台,在侧边导航选中数据质量模块。
- 通过tab页切换选择规则模版,可查看系统规则模版列表。
表1 规则模版列表项说明
| 列表项名称 | 说明 |
|---|---|
| 模板名称 | 数据质量监控规则的预设模板标识。 |
| 质量维度 | 模板对应的质量管控方向。当前模版的质量维度为有:有效性、准确性、完整性、唯一性、一致性和及时性。 |
| 规则级别 | 模板适用的监控对象层级。规则级别:表、字段、跨字段、文件夹和文件。 |
| 可用对象 | 数据卷/数据表。 |
| 输出值 | 模板执行监控后返回的结果内容。 |
| 描述 | 模板的功能说明,明确其监控目标。 |
内置规则列表
系统内置表级、字段级、跨字段级、文件夹级和文件级规则,具体规则说明如下。
表2 表级规则说明
| 规则维度 | 规则名称 | 描述 | 输出值 | 输入参数 |
|---|---|---|---|---|
| 完整性 | 全表空值 | 完整性质量规则(表级,包含空字符串判断) | 总行数、空值行数、空值率 | |
| 准确性 | 表行数 | 表行数校验 | 总行数 | |
| 表行数1天波动率 | 表行数1天波动率 | 1天波动率 | ||
| 表行数7天波动率 | 表行数7天波动率 | 7天波动率 | ||
| 表行数30天波动率 | 表行数30天波动率 | 30天波动率 | ||
| 表行数7天均值波动率 | 表行数7天均值波动率 | 7天均值波动率 | ||
| 表行数30天均值波动率 | 表行数7天均值波动率 | 30天均值波动率 | ||
| 及时性 | 数据表更新及时性 | 检查数据表更新时间是否在允许范围内(例如 ≤ 60 分钟)。 | 数据表更新时间 | 最大允许延迟 |
表3 字段级规则说明
| 规则维度 | 规则名称 | 描述 | 输出值 | 输入参数 |
|---|---|---|---|---|
| 完整性 | 字段空值 | 指定字段为空或空字符串,则为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]) | |
| IP地址校验 | 匹配IP地址格式,正则表达式为:^(?:(?:1[0-9][0-9].) | (?:2[0-4][0-9].) | (?:25[0-5].) | |
| 电话校验 | 匹配手机电话号码格式,正则表达式为:^([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] | |
| 准确性 | 字段平均值 | 指定字段的平均值是否准确。 | 平均值 | |
| 字段平均值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倍标准差。 | 离群值行数、总行数、离群值比率 | ||
| 值域范围 | 指定字段的取值范围是否在规定范围内。 | 无效行数、有效行数、总行数、无效比率 | 值域范围 | |
| 枚举值校验 | 指定字段的取值范围是否在枚举值中。 | 无效行数、有效行数、总行数、无效比率 | 枚举值 |
表4 跨字段级规则说明
| 规则维度 | 规则名称 | 描述 | 输出值 | 输入参数 |
|---|---|---|---|---|
| 一致性 | 跨字段级 | 字段一致性校验 | 字段一致性校验 | 总行数、一致行数、不一致行数、一致比率 |
表5 文件夹级规则说明
| 规则维度 | 规则名称 | 描述 | 输出值 | 输入参数 |
|---|---|---|---|---|
| 有效性 | 文件夹下文件命名正则表达式校验 | 文件命名正则表达式校验(统计不包括文件夹) | 总文件数、无效文件数、有效文件数、无效比率 | 正则表达式、扫描范围(仅当前文件夹、包含子文件夹) |
| 文件夹下文件格式校验 | 文件格式校验(统计不包括文件夹) | 总文件数、无效文件数、有效文件数、无效比率 | 文件格式、扫描范围(仅当前文件夹、包含子文件夹) | |
| 完整性 | 文件夹下文件总数量 | 校验文件总数量(统计不包括文件夹) | 总文件数 | 扫描范围(仅当前文件夹、包含子文件夹) |
| 文件夹下文件总大小 | 校验文件总大小(统计不包括文件夹) | 总文件大小 | 扫描范围(仅当前文件夹、包含子文件夹) | |
| 及时性 | 文件夹下文件更新及时性 | 检查指定文件夹内所有文件(统计不包括文件夹)的最新更新时间是否在允许范围内(例如 ≤ 60 分钟)。 | 总文件数、超时文件数、正常文件数、超时占比 | 最大允许延迟、扫描范围(仅当前文件夹、包含子文件夹) |
| 文件夹下最新文件更新及时性 | 检查指定文件夹内最新文件(统计不包括文件夹)的更新时间是否在允许范围内(例如 ≤ 60 分钟)。 | 最新文件更新是否及时 | 最大允许延迟、扫描范围(仅当前文件夹、包含子文件夹) |
表6 文件级规则说明
| 规则维度 | 规则名称 | 描述 | 输出值 | 输入参数 |
|---|---|---|---|---|
| 及时性 | 文件更新及时性 | 检查指定文件的更新时间是否在允许范围内(例如 ≤ 60 分钟)。 | 文件更新是否及时 | 最大允许延迟 |
规则模版详情
在规则模版列表单击模版名称,可进入规则模版详情。规则模版详情可查看模版基本信息和引用信息,基本信息包括:质量维度、规则粒度、可用对象、输出值和描述。引用信息包括:引用对象、对象类型/名称、规则名称、创建人和创建时间。
自定义模版
数据质量支持自定义规则模板库,并对自定义规则进行统一管理,也可以查看自定义规则模板详情。规则维度包括:完整性、唯一性、有效性、准确性、一致性、及时性。规则粒度包括:表级、字段级、跨字段级。
表7 规则维度说明
| 规则维度 | 描述 |
|---|---|
| 完整性 | 数据在创建、传递过程中无缺失和遗漏,包括实体完整、属性完整、记录完整和字段完整四个方面。 |
| 一致性 | 遵循统一的数据标准记录和传递数据信息,主要体现在数据记录是否规范、数据是否符合逻辑。 |
| 准确性 | 真实、准确地记录原始数据,无续建数据及信息。数据准确反映其所建模的“真实世界”实体。 |
| 唯一性 | 同一数据只能有唯一的标识符。体现在一个数据集中,一个实体只出现一次,并且每个唯一实体有一个键值 且该键值只指向该实体。 |
| 有效性 | 数据的值、格式和展现形式符合数据定义和业务定义的要求。 |
| 及时性 | 及时记录和传递相关数据,满足业务对信息获取的时间要求。数据交付及时,抽取要及时,展现要及时,数据交付时间过长可能导致分析结论失去参考意义。 |
创建自定义模版
- 登录并进入登录百度智能云 DataBuilder控制台。在左侧导航栏选择数据质量>规则模板。
- 通过tab选择自定义模版,单击创建按钮,填写规则模板的基本配置和规则配置,完成后确定。
表8 创建自定义模版配置项说明
| 配置项名称 | 描述 |
|---|---|
| 模板名称 | 填写自定义规则模板名称。支持中文、英文、数字以及_-./()特殊字符,长度不超过256字符。 |
| 质量维度 | 下拉列表选择有效性、准确性、完整性、唯一性、一致性、及时性。 |
| 规则粒度 | 下拉列表选择表级、字段级、跨字段级。 |
| 可用对象 | 数据表。 |
| 模版描述 | 填写自定义规则描述信息。任意字符,不超过500字符 |
| 规则输出 | 输出可为最大值、最小值、合法行数、合法比率等。如有多个输出值,输出值个数需和规则表达式输出个数一致,用英文逗号“,”进行分隔。 |
| 规则表达式 | 自定义SQL校验逻辑,支持添加库表、字段和输入参数。最多添加2张表、5个字段参数、2个输入参数;如果有多行输出,只取第一行数据,且数据必须为数值类型。不支持“select * ”语法。库表、字段和输入参数请使用添加参数按钮进行添加,修改参数序号以保证逻辑正确性。 |
查看自定义模版列表
创建完成的模板以列表形式展示,支持按照模版名称进行筛选。
- 登录并进入登录百度智能云 DataBuilder控制台。在左侧导航栏选择数据质量>规则模板。
- 通过tab选择自定义模版,查看自定义模版列表。
- 编辑:单击对应规则操作栏的编辑按钮,进入规则编辑页面。如果规则已经被质量作业引用,则无法编辑。
- 权限管理:对规则模版进行权限管理,对用户进行赋权等操作。
- 删除:单击对应规则操作栏的删除按钮,即可删除。如果规则已经被质量作业引用,则无法删除。
自定义模版详情
在列表单击模版名称可查看自定义模版详情,详情包括基本信息、规则表达式、引用信息及操作记录。
举例说明
示例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(1) FROM ${Table1} LEFT JOIN ${Table2} ON ${Table1}.${Column1} = ${Table2}.${Column1} WHERE ${Table1}.${Column2} > 0 AND ${Table2}.${Column2} > 0 AND ${Table2}.${Column3} > 0
- 规则输出:表行数
示例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并且满足对应过滤条件的表行数。
