质量规则模板常用于抽象质量规则配置中逻辑一致或相似的逻辑,可以提升后续配置质量监控规则的效率。Dataphin内置支持20+质量规则模板,并支持通过自定义SQL的方式灵活拓展,以满足企业的质量监控诉求。本文为您介绍如何新建质量规则模板。
权限说明
超级管理员、质量管理员支持新建、克隆、编辑及删除规则模板。
所有用户支持引用规则模板。
新建规则模板
在Dataphin首页,单击顶部菜单栏中的资产。
按照下图指引,进入新建规则模板对话框。
依次单击质量->规则模板->新建规则模板。
在新建规则模板对话框中,配置参数。
参数
描述
基本信息
模板名称
自定义规则模板名称,不能超过64个字符。
模板类型
配置模板所属的类型,便于后续引用时快速查找。支持自定义规则模板的类型包括:有效性、一致性、及时性和自定义SQL。
有效性包括数据标准码表参照对比(需开通数据标准模块)、码表参照对比、字段格式校验、字段值域校验、字段长度校验。
一致性包括单字段业务逻辑一致性比较、两表字段统计值一致性比较、两表字段业务逻辑一致性比较、单表字段统计值一致性比较、跨源两表字段统计值一致性比较。
及时性包括单表时间字段比较、两表时间字段比较、时间函数比较。
自定义SQL包括自定义统计指标校验和自定义数据详情校验。
不同类型模板的使用场景,请参见模板类型说明。
数据源类型
模板需要指定支持的数据源类型,避免不同数据源语法结构不一致导致规则定义不生效或校验结果异常产生误告警。支持定义2种类型:
通用:校验条件和具体的数据源无关,所有类型均可以使用相同的校验语句,例如:完整性模板。
特定类型:规则定义仅对特定数据源类型生效,需要选择具体的数据源类型。配置后仅支持在指定数据源类型的监控对象下创建质量规则时引用当前定义的模板。
描述
自定义规则模板描述。不超过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}
等变量需要指定实际的表字段,并在执行时会被替换为实际的表字段,最多支持双表。
跨源两表字段统计值一致性比较:
统计方式:可统计字段分组个数、字段最大值、字段重复率等,详情请参见数据表参数配置。
数据源类型:选择该物理表的数据源类型,包括MaxCompute、MySQL、Oracle、Microsoft SQL Server、PostgreSQL、SAP HANA、AnalyticDB for PostgreSQL、ClickHouse、IBM DB2、Hologres、DM(达梦)、StarRocks、Hive、ArgoDB、Lindorm。
数据源:选择该物理表所属的数据源。
选择比较表:选择物理表中需要比较的表及该物理表需要比较的字段。
有效性
当模板类型选择为有效性大类时,对应的参数如下所示。
数据标准码表参照对比(需开通数据标准模块):
码表:选择在数据标准下已发布状态的码表,如需创建码表,请参见新建和管理标准代码(码表)。
码表参照:根据此处选择的参照值和字段值进行比较,可选代码值、代码名称、代码英文名。
码表参照对比:
数据源类型:选择数据源类型。
数据源:选择对应数据源类型的数据源。
说明为了性能考虑,跨数据源最多只会读取1000条码表数据进行对比,建议码表和被检验表在同一数据源。
跨数据源对比字段会被自动转换为string类型, 部分特殊字段类型可能会出现异常情况。建议码表中的字段类型和校验字段类型都是string或其他相同类型。
码表:选择目标码表。
码表名称:输入码表名称,作为质量规则配置时的提示信息。
码表参照字段:选择码表中对应的参照字段。
说明码表参照表是判断某个字段是否在码表中,需要选择一个对比的字段。例如判断用户详情表里的用户ID是否都是注册用户。
码表过滤条件:设置分区表的过滤条件,对数据进行过滤。
字段格式校验:
内容识别形式:可选择识别表达式、正则表达式、字符串匹配(%)、开头是、中间是、结尾是,表达式用于匹配符合规则的数据。
内容识别形式-识别表达式:输入SQL表达式函数。例如
${column}>0
,其中${column}
为内置参数。内容识别形式-正则表达式:在输入框中输入正则表达式。例如您需要匹配所有名称中带有test,则正则表达式定义为
.*test.*
。内容识别形式-字符串匹配(%):标准的like表达式,使用%代表通配符,如匹配a开头的数据,输入a%即可。
内容识别形式-开头是:输入待匹配字符串,会自动按照模式在尾部拼接%,例如:a%。
内容识别形式-中间是:输入待匹配字符串,会自动按照模式在开头和尾部拼接%,例如:%a%。
内容识别形式-结尾是:输入待匹配字符串,会自动按照模式在开头拼接%,例如:%a。
说明识别表达式支持使用函数,但需要注意执行时的数据库需要支持该函数。
字段值域校验:
值域类型:根据实际业务选择。
文本:用于对文本有效性进行验证,需要确保校验字段为文本类型。需设置值域范围,支持枚举或区间设置。选择枚举值的校验示例:对比张三和李四,生成的校验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大类时,对应的参数如下所示。
自定义统计指标校验:即自定义需要校验的指标加工口径,结果需是数值,如:校验当日销售额。
自定义SQL:自定义SQL指标的统计逻辑,代码示例如下:
单表查询
select sum(${t1.c1}) from ${t1} where ds=${bizdate};
子查询
select sum(${t1.c1}) from (select ${t1.c1} from ${t1} where ds=${bizdate}) a;
多表查询
select sum(${t1.c1}) from ${t1} join ${t2} on $[t1.id]=$[t2.id] where $[t1.ds]=${bizdate};
自定义数据详情校验:通过自定义SQL指定正常、异常数据内容的定义口径,可配置总行数SQL、异常行数SQL、异常数据SQL。
总行数SQL:必填,定义总行数指标的SQL统计逻辑,结果需是数值,填写后可以配置正常率、异常率等统计指标。总行数代码示例如下:
select count(*) from ${t1} where ds=${bizdate};
异常行数SQL:必填,定义异常行数指标的SQL统计逻辑,结果需是数值,且需有异常数据的判断条件,填写后可以对异常行数进行统计;填写总条数后同时可以统计异常率。异常行数代码示例如下:
select count(*) from ${t1} where ds=${bizdate} and ${t1.c1}<0;
异常数据SQL:选填,定义异常数据指标的SQL统计逻辑(单个字段),填写后支持使用异常归档功能。异常数据代码示例如下:
select ${t1.c1} as dataphin_quality_error_data from ${t1} where ds=${bizdate} and ${t1.c1}<0;
说明SQL支持多表查询及子查询。
支持固定的表名和字段名;Dataphin表支持使用项目名引用物理表或使用板块名引用逻辑表。
支持使用变量代替表名或字段名。
指定表:单击编辑框中的填入表名1,快捷输入表名变量
${t1}-${t5}
。最多指定5张数据表,不区分大小写。指定某张表的字段:单击编辑框中的仅填入表1的字段名1,快捷输入该表的字段名变量
${t1.c1}
。指定表+字段:单击编辑框中的填入表名1+字段名1,快捷输入表名+字段名变量
$[t1.c1]
。
仅支持上述变量写法,其他变量形式将统一被解析为校验表的字段变量,如${t6}、${table1}、${a.b}等,请避免使用其他变量表达式。
参数配置
填写质量规则的set参数,不超过128个字符。例如:
set hive.execution.engine=mr
。说明参数设置仅针对MaxCompute、Hive类型数据表的质量规则生效,其他类型的数据表引用该模板配置质量规则时会忽略该参数配置。
针对基于该模板创建的所有质量规则生效,您可以在预览SQL中查看最终执行的SQL语句。
单击预览SQL,可查看规则模板的SQL预览。
说明在模板中,若有较多配置字段未填写,可用变量形式表示,如:${table1}、${column1}。
单击确定,完成模板的创建。
查看规则模板列表
区域 | 描述 |
①筛选及搜索区 | 您可以根据模板的名称模糊搜索,可以快捷筛选我负责的模板,也可以根据模板类型、模板来源、数据源类型、模板负责人进行精确筛选。 |
②列表区 | 为您展示规则模板的名称、模板描述、模板类型、模板来源、模板负责人、更新时间、数据源类型信息。同时,不同类型的模板支持不同的操作。 自定义模板(Dataphin数据表、全域数据表):支持查看引用、编辑、添加质量规则、查看模板详情、克隆、转交、删除操作。 系统模板(Dataphin数据表、全域数据表、指标):查看引用、编辑模板参数、添加质量规则操作。 系统模板(数据源、实时元表):支持查看引用、添加质量规则操作。
|
后续步骤
完成规则模板创建后,您可根据规则模板配置质量规则。更多信息,请参见创建质量规则。