1. 概述
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 5.0.0.1 | - |
| 5.0.8.1 | 「平台内置规则」中:
|
| 历史版本更新 | ||||||||||
|
1.2 功能简介
本文为大家介绍数据检测任务中的检测规则。
2. 检测规则概览
数据检测任务可设置的规则有三种类型:
| 规则类型 | 说明 |
|---|---|
| 平台内置规则 |
|
| 任务自定义规则 |
|
| 全局自定义规则 |
|
具体规则内容概览:
| 规则类型 | 计算方式 | 检测内容 | 示例 | |
|---|---|---|---|---|
平台内置规则 | 唯一性 | 表行唯一性检测(表级) | 正常行数、正常行占比、异常行数、异常行占比 | 校验主键唯一性 |
| 字段值唯一性检测(字段级) | 正常值个数、正常值占比、异常值个数、异常值占比 | 校验用户 ID 是否唯一 | ||
| 完整性 | 字段NULL值/空字符串检测(字段级) | NULL值个数、NULL值占比、空字符串个数、空字符串占比 | 校验身份证号是否存在缺失 | |
| 有效性 | 字段格式检测(字段级) | 正则表达式匹配的行数、行占比 | 校验联系人手机号是否合法 | |
| 一致性 | 两表字段统计值比对(字段级) | 统计差值、统计差异率 | 使用定时任务完成数据同步后,需要对两表数据一致性进行检测,判断是否存在缺失/冗余等数据不一致的情况 | |
| 两表数据明细值比对(表级) | 差异行数、差异率 | |||
| 准确性 | 表行数准确性检测(表级) | 总行数、1天波动率、7天波动率 | 对订单表进行日总数监控:当日订单数量与前一日相比,波动率介于±10%内为正常 | |
任务自定义规则 | - | 行级筛选 | 逐行判断某字段是否满足条件,再统计行数、行占比 | 校验退款数据是否在订单主表中匹配到有效记录 |
| - | 聚合计算 | 多行聚合计算后判断结果 | 统计每月销售额小于 10w 的商品 | |
| 全局自定义规则 | - | 引用全局自定义规则 | - | - |
3. 平台内置规则
平台内置规则支持以下几种计算方式:

3.1 表行唯一性检测(表级)
配置界面如下:

3.1.1 规则强度
5.0.7.3 及之后版本,所有规则新增「规则强度」配置项。
应用场景:强规则适用于核心指标、合规性数据的校验,针对对下游数据影响较大的场景做数据质量监控;弱规则适用于非核心指标监控,此类场景不影响核心业务流程,对异常数据仅做预警通知,预留时间排查优化。
规则强度说明:
强规则检测不通过,将判定表检测不通过。例如:任务中有强、弱规则,有一个强规则检测不通过,即最终检测不通过。
弱规则检测不通过,不影响表最终检测结果。例如:任务中都为弱规则且都检测不通过,但最终检测通过。
示例:
检测任务中有两个弱规则、一个检测通过、一个检测不通过。弱规则不影响最终检测结果,所以最终检测通过,并提示有表存在检测不通过的弱规则。

3.1.2 计算结果
可选择:正常行数、正常行占比、异常行数、异常行占比
正常行:唯一行,即不重复的数据行;例如检测「合同ID」的 「正常行占比=1」,即检测是否有重复行。
异常行:所有重复出现的行;例如检测「合同ID」的 「异常行=0」,即检测是否有重复行。
3.1.3 联合主键
选择字段作为联合主键计算行数,每张表至少选择1个字段。
3.1.4 预期范围
指定预期范围,例如「异常行数=0」。
支持添加多个条件,支持切换添加「且/或」条件。
3.1.5 记录异常明细
5.0.6.3 及之后版本,新增此配置。
若勾选,检测不通过时,识别并记录表内重复行。
详情请参见:数据检测任务-异常明细
3.2 字段值唯一性校验
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 详情请参见本文 3.1.1 节内容 |
| 计算结果 | 可选择:正常值个数、正常值占比、异常值个数、异常值占比
|
| 检测字段 | 每张表至少选择 1 个字段 |
| 预期范围 | 指定预期范围,例如「异常值个数=0」 支持添加多个条件,支持切换添加「且/或」条件 |
| 记录异常明细 | 5.0.6.3 及之后版本,新增此配置 若勾选,检测不通过时,识别并记录表内重复行 详情请参见:数据检测任务-异常明细 |
3.3 表总行数计数(表级)
配置界面如下:
注:5.0.8.1 及之后版本,删除此规则。

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 计算结果 | - |
| 预期范围 | 指定预期范围,例如「总行数大于等于 500000」 支持添加多个条件,支持切换添加「且/或」条件 |
3.4 字段NULL值/空字符串检测(字段级)
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 计算结果 | 可选择:NULL值个数、NULL值占比、空字符串个数、空字符串占比 |
| 检测字段 | 每张表至少选择 1 个字段 |
| 预期范围 | 指定预期范围,例如「空字符串个数=0」 支持添加多个条件,支持切换添加「且/或」条件 |
| 记录异常明细 | 5.0.6.3 及之后版本,新增此配置 若勾选,检测不通过时,识别并记录字段NULL值所在的完整行 详情请参见:数据检测任务-异常明细 |
3.5 字段格式校验(字段级)
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 计算方式 | 正则表达式仅对文本型和数值型字段生效 |
| 计算结果 | 可选择:匹配行数、匹配行占比 |
| 检测字段 | 每张表至少选择 1 个字段 |
| 预期范围 | 指定预期范围,例如「匹配行数=0」 支持切换添加「且/或」条件 |
| 记录异常明细 | 5.0.6.3 及之后版本,新增此配置 检测不通过时,识别并记录字段格式不匹配的值所在的完整行 详情请参见:数据检测任务-异常明细 |
3.6 两表字段统计值比对(字段级)
5.0.3.4 及之后版本,平台内置规则新增计算方式:两表字段统计值比对。
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 统计方式 | 可选择:
|
| 比对配置 | 1)「比对源」支持选择不同数据源下的库,即检测表和比对表在不同类型的数据连接下
2)若有多张比对表,比对表仅支持来源于同一个数据连接下的同一个库/模式
3)若在配置「检测对象」时,同时配置了检测的数据范围,支持在此处查看检测对象的数据范围。此外,支持配置比对表的「数据范围」,配置逻辑与配置检测对象的数据范围一致,详情请参见 ②配置检测对象
4)若统计方式为:字段计数、字段唯一值计数,建议选择主键字段作为比对字段 |
| 计算结果 | 可选择:
注:当分母为 0 时,统计差异率为 100% |
| 预期范围 | 指定预期范围,例如「统计差值=0」 支持切换添加「且/或」条件 |
3.7 两表数据明细值比对(表级)
5.0.3.4 及之后版本,平台内置规则新增计算方式:两表数据明细值比对。
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 比对配置 | 1)「比对源」支持选择不同数据源下的库,即检测表和比对表在不同类型的数据连接下
2)若有多张比对表,比对表仅支持来源于同一个数据连接下的同一个库/模式
3)若在配置「检测对象」时,同时配置了检测的数据范围,支持在此处查看检测对象的数据范围。此外,支持配置比对表的「数据范围」,配置逻辑与配置检测对象的数据范围一致,详情请参见 ②配置检测对象
|
主键映射:必填。选择字段作为逻辑主键映射确定数据唯一性
| |
比对字段: 左表固定检测表,右表固定为比对表,以左表为基准选择比对表字段 非必选,为空时无法标记出字段内容不一致的行 | |
| 计算结果 | 可选择:
|
| 预期范围 | 指定预期范围,例如「差异行数=0」 支持切换添加「且/或」条件 |
| 记录异常明细 | 5.0.6.3 及之后版本,新增此配置 若勾选,检测不通过时,识别并记录两表不一致的数据 详情请参见:数据检测任务-异常明细 |
3.8 表行数准确性检测
5.0.8.1 及之后版本,平台内置规则新增计算方式:表行数准确性检测。

| 配置项 | 说明 |
|---|---|
| 规则强度 | 设置规则强度,详情请参见本文 3.1.1 节 |
| 计算指标 | 表行数,即对表行数进行检测 |
| 计算结果 | 计算结果可选择:
注:波动率的计算依赖于基准值,也就是 1/7 天前最后一次检测通过的定时调度采样结果为基准值进行计算。因此 需要配置 定时调度 ,获取基准值,若无检测通过的基准值,默认规则检测通过。 波动率计算公式:波动率=(样本-基准值)/基准值
|
| 预期范围 | 指定预期范围,支持添加多个条件,支持切换添加「且/或」条件 对订单表进行日总数监控:当日订单数量与前一日相比,波动率介于±10%内为正常 |
4. 任务自定义规则
4.1 行级筛选
「行级筛选」:逐行判断某字段是否满足条件,再统计行数/行占比,可用于空值检查、手机号格式校验等场景。
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 自定义 SQL | 自定义 SQL,执行结果为明细数据,执行结果的行数会被用于统计行数 |
| 计算结果 | 指定如何计算这些明细行,可选择:行数、行占比 |
| 预期范围 | 指定预期范围 支持添加多个条件,支持切换添加「且/或」条件 |
| 记录异常明细 | 5.0.6.3 及之后版本,新增此配置 支持自定义异常详情 SQL,此 SQL 语句用于检测时查询异常明细数据 允许指定表占位符和字段占位符、允许为空 详情请参见:数据检测任务-异常明细 |
4.2 聚合计算
「聚合计算」:多行聚合计算后判断结果,依赖聚合函数,例如计算平均销售额是否超过 100 万。
配置界面如下:

| 配置项 | 说明 |
|---|---|
| 规则强度 | 5.0.7.3 及之后版本新增此配置 设置规则强度,详情请参见本文 3.1.1 节 |
| 自定义 SQL | 若勾选「使用自定义 SQL 计算」,支持自定义 SQL,执行结果为统计值 支持自定义统计值的「值类型」,执行结果的行数会被用于统计行数
|
| 行范围 | 未勾选「使用自定义 SQL 计算」,出现此配置 支持填写 WHERE 语句来筛选要进行统计计算的行 |
| 计算结果 | 未勾选「使用自定义 SQL 计算」时,需选择预设的计算类型和计算方式: 1)日期类计算
2)数值类计算
|
| 检测字段 | 选择需要检测的字段 |
| 预期范围 | 指定预期范围 支持添加多个条件,支持切换添加「且/或」条件 |
5. 全局自定义规则
5.1 设置全局自定义规则
1)点击「全局设置」按钮,添加全局自定义规则,如下图所示:

| 配置项 | 说明 |
|---|---|
| 规则名称 | 配置规则名称 |
计算方式 计算结果 | 详情参见 平台内置规则 |
| 自定义 SQL/行范围 | 支持使用@[tableName]、@[column]作为表名、字段名占位符 表占位符:
字段占位符:
其余说明可参见 平台内置规则 |
2)支持引用全局自定义规则,需设置检测字段和预期范围。其余配置项不支持修改,若需修改,请在 1)中全局自定义规则修改。如下图所示:
5.0.6.3 及之后版本,若全局自定义规则使用的是「行级筛选」规则,新增「异常明细记录」配置,详情请参见:数据检测任务-异常明细

5.2 管理全局自定义规则
1)在「全局自定义规则」页面中,可以查看当前工程中所有全局自定义规则,包括名称、计算方式、计算结果等信息,同时提供新增、编辑、删除、搜索全局自定义规则操作。如下图所示:

2)展示该全局规则的修改记录,包括创建时间/修改时间,创建者/修改者(仅记录最新操作的15个记录,若超过,最晚记录覆盖最早记录)。如下图所示:

3)在「全局自定义规则管理」页面中,支持查看字段级检测的自定义 SQL、行数。如下图所示:

