规则模板
根据实际业务需求创建数据表质量模板,方便后续数据表质量规则的配置。本文为您介绍如何新建质量规则模板。
新建规则模板
在Dataphin首页,单击顶部菜单栏中的资产。
按照下图指引,进入新建规则模板对话框。
在新建规则模板对话框,根据下表配置参数。
区域
参数
描述
基本信息
模板名称
自定义规则模板名称,不能超过64个字符。
模板类型
不同规则大类对应的模板类型不同。
有效性包括数据标准码表参照对比(需开通数据标准模块)、码表参照对比、字段格式校验、字段值域校验、字段长度校验。
一致性包括单字段业务逻辑一致性比较、两表字段统计值一致性比较、两表字段业务逻辑一致性比较、单表字段统计值一致性比较、跨源两表字段统计值一致性比较。
及时性包括单表时间字段比较、两表时间字段比较、时间函数比较。
对应模板类型关系介绍,请参见规则模板定义。
数据源类型
可选择通用或特定类型两种类型。
模板需要指定支持的数据源信息。指定后如果被不支持的数据源所引用,会提示不支持当前数据源类型。
一些模板在定义上(如完整性)和具体的数据源无关,数据源类型可以选择通用;一些模板(如含有自定义表达式的模板)的可用性可能和具体的数据源有关,则需要选择支持的数据源类型。
描述
自定义规则模板描述。不超过128字符。
模板配置
当模板类型选择为一致性大类时,对应的参数如下所示。
单字段业务逻辑一致性比较:
识别表达式:输入SQL表达式函数。例如
${total_sales}=${unit_price}*${sales_volume}
。说明识别表达式支持使用函数,但需要注意执行时的数据库需要支持该函数。
支持多个字段之间的业务逻辑的校验。如总销售额=单价*销售数量,校验总销售额是否出错可以用
${total_sales}=${unit_price}*${sales_volume}
。表达式中的
${total_sales}
等变量需要指定实际的表字段,并在执行时会被替换为实际的表字段。
两表字段统计值一致性比较/单表字段统计值一致性比较:
统计方式:可统计字段分组个数、字段最大值、字段重复率等,详情请参见模板类型说明。
两表字段业务逻辑一致性比较:
业务逻辑:输入SQL表达式函数。例如
${T1.total_sales}=${T2.unit_price}*${T2.sales_volume}
。说明支持多个字段之间的业务逻辑的校验。如总销售额=单价*销售数量,校验总销售额是否出错可以用
${T1.total_sales}=${T2.unit_price}*${T2.sales_volume}
。表达式中的
${T1.total_sales}
等变量需要指定实际的表字段,并在执行时会被替换为实际的表字段,最多支持双表。
跨源两表字段统计值一致性比较:
统计方式:可统计字段分组个数、字段最大值、字段重复率等,详情请参见模板类型说明。
数据源类型:选择该物理表的数据源类型。
数据源:选择该物理表所属的数据源。
选择比较表:选择物理表中需要比较的表及该物理表需要比较的字段。
当模板类型选择为有效性大类时,对应的参数如下所示。
数据标准码表参照对比(需开通数据标准模块):
码表:选择在数据标准下已发布状态的码表,如需创建码表,请参见新建和管理标准代码(码表)。
码表参照:根据此处选择的参照值和字段值进行比较,可选代码值、代码名称、代码英文名。
码表参照对比:
数据源类型:选择数据源类型。
数据源:选择对应数据源类型的数据源。
说明为了性能考虑,跨数据源最多只会读取1000条码表数据进行对比,建议码表和被检验表在同一数据源。
跨数据源对比字段会被自动转换为string类型, 部分特殊字段类型可能会出现异常情况。建议码表中的字段类型和校验字段类型都是string或其他相同类型。
码表:选择目标码表。
码表名称:输入码表名称,作为质量规则配置时的提示信息。
码表参照字段:选择码表中对应的参照字段。
说明码表参照表是判断某个字段是否在码表中,需要选择一个对比的字段。例如判断用户详情表里的用户ID是否都是注册用户。
码表过滤条件:设置分区表的过滤条件,对数据进行过滤。
字段格式校验:
内容识别形式:可选择识别表达式、正则表达式两种方式,表达式用于匹配符合规则的数据。
识别表达式:输入SQL表达式函数。例如
${column1}>0
,其中${column}
为内置参数。说明识别表达式支持使用函数,但需要注意执行时的数据库需要支持该函数。
字段值域校验:
值域类型:根据实际业务选择。
文本:用于对文本有效性进行验证,需要确保校验字段为文本类型。需设置值域范围,支持枚举或区间设置。选择枚举值的校验示例:对比张三和李四,生成的校验SQL为
x in ("张三", "李四")
。数字:用于对数值有效性进行验证,需要确保校验字段为数值类型。需设置值域范围,支持枚举或区间设置。选择枚举值的校验示例:对比3、6、9,生成的校验SQL为
x in (3, 6, 9)
。日期:用于对日期有效性进行验证,需要确保校验字段为日期类型(date)。
时间戳:用于对时间戳有效性进行验证,需要确保校验字段为时间戳类型(timestamp)。
自定义:用于对多种格式进行校验,同时支持使用函数,填写的内容会直接下发到数据源执行。
需设置值域范围,支持枚举或区间设置。
选择枚举值的校验示例:对比3、6、9生成的校验SQL为
x in (3, 6, 9)
。选择区间设置的校验示例:值域范围为最小值y1~最大值y2;假设被对比字段是x,则最后校验SQL为
x >= y1 and x <= y2
。说明自定义时的字段格式,例如10和"10"在不同数据源执行可能不同。
需要保证所使用函数在校验质量的数据源有效。
字段长度校验:
字段长度:设置长度范围。支持枚举或区间设置。
选择枚举值的校验示例:对比3、6、9生成的校验SQL为
x in (3, 6, 9)
。选择区间设置的校验示例:值域范围为最小值y1~最大值y2;假设被对比字段是x,则最后校验SQL为
x >= y1 and x <= y2
。
当模板类型选择为及时性-单表时间字段比较、及时性-两表时间字段比较、及时性-时间函数比较时,对应的参数如下所示。
校验项:基于校验字段定义表达式。校验项的内置参数为
${column})
。比较项:比较时间的表达式,内置
${column}
、${bizdate}
参数。基于比较字段定义表达式,
${column}
为比较项内置参数,例如:${column}、substr(${column})
。日期函数比较选择
${bizdate}
,则会被识别为业务日期。
时间容差:设置校验项减去比较项的值。取单位项小数点前的值,不做四舍五入。例如发货日期和下单日期需要在同一天,则校验项 - 比较项目可设置为小于1天。
单击预览SQL,可查看规则模板的SQL预览。
说明在模板中,有很多配置字段都还没有填,这时候用变量形式来表示,比如${table1}、${column1}。
单击确定。
查看规则模板列表

区域 | 描述 |
①筛选及搜索区 | 您可根据模板的名称模糊搜索,也可以根据我负责的、模板类型、模板来源、数据源类型、模板负责人进行精确筛选。 |
②列表区 | 为您展示规则模板名称、模板描述 、模板类型、模板来源、模板负责人、更新时间、数据源类型信息。同时。您可在操作列对模板执行查看引用、编辑、添加质量规则、查看模板详情、克隆、转交、删除操作。
|
规则模板定义
规则类型 | 场景描述 | 场景举例 | 规则模板 |
一致性 | 用于对比不同列、不同表之间的数据或业务一致性。 常用于比较不同数据表的主键是否相同、单价乘数量是否等于总价等。 | 王先生在员工系统的公司职务是总监,在销售系统是主管。 |
|
有效性 | 用于对数据内容填写是否符合规范进行校验。 常用于对数据的类型、范围或长度进行校验。 | 员工年龄-1岁,无效。 |
|
及时性 | 用于对数据时间更新的频率和间隔进行验证。 常用于判断业务日期或操作日期是否为最新,时间间隔是否合理。 | 王先生午8点入职,10点才能在系统看到相关信息。 | 时间对比 |
准确性 | 用于校验数据的真实程度,需要和实际的数据进行对比。 常用于用户手机号验证、邮箱验证、用户标签验证。 | 联系方式是否是真实联系方式。 | 多列值比较 |
唯一性 | 用于对字段是否唯一进行校验。 唯一性用于对字段是否唯一进行校验。 | 员工身份证号码应该只出现一次。 |
|
完整性 | 用于判断表或字段是否存在所有的必要数据,以此检查数据是否完整。 常用于判断字段填充率、必填或非空(填充率100%)等。 | 企业有1000员工,只有600人有联系方式。 | 单列值比较 |