Dataphin支持创建校验数据表的质量规则,提升数据表质量监控的便捷性。本文为您介绍如何配置全域数据表的质量规则。
前提条件
已经添加监控对象才可配置质量规则,如何添加监控对象,请参见添加监控对象。
权限说明
超级管理员、质量管理员支持为质量规则配置调度、告警、异常归档表、打分权重等。
质量负责人支持在自己所负责的监控对象下为质量规则配置调度、告警、异常归档表、打分权重等。
质量负责人、普通用户需要额外具备全域数据表所在数据源的同步读取权限,如需申请,请参见申请数据源权限。
校验规则说明
数据表参与质量规则校验时,如果触发了质量弱监控规则,系统会给您发送告警消息,便于您及时发现并处理异常;如果触发了质量强监控规则,系统会自动中断该表所在的任务,避免脏数据流入下游,同时系统会给您发送告警消息,便于您及时发现并处理异常。
质量规则试跑和运行区别
试跑和运行的区别在于执行的方式和显示的结果,试跑指对某个质量规则进行一次模拟执行,以检测规则的正确性和运行情况,试跑的结果不会在质量报告中显示;运行指在特定的时间内对质量规则进行检查,运行的结果会输出到质量报告中,便于用户查看和分析。
质量规则配置
在Dataphin首页,单击顶部菜单栏的治理-数据质量。
按照以下操作指引,进入质量规则详情页面,配置质量规则。
依次单击质量规则->全域数据表->对象的名称。
在质量规则详情页面,单击新建质量规则。
在新建质量规则对话框中,配置参数。
参数
描述
基本信息
规则名称
自定义质量规则的名称,不超过256个字符。
规则强度
支持弱规则和强规则。
弱规则:如果您选择了弱规则,则质量规则校验的结果为异常时报警但不阻塞下游任务节点。
强规则:如果您选择了强规则,则质量规则校验的结果为异常时报警,同时在有下游任务的情况下(代码检查调度、任务触发调度)会阻塞下游任务,防止污染数据扩散;如果没有下游任务(如周期质量调度),则仅告警。
描述
自定义质量规则描述。不超过128个字符。
配置方式
模板创建:使用通用的系统模板和自定义的业务模板,快速创建质量规则。
系统模板:模板内置参数可配置,适合通用的规则创建。
自定义模板:模板预置参数,无需配置,一般用于含有业务逻辑的规则创建。
自定义SQL:可通过SQL灵活自定义质量监控规则,适用于灵活复杂场景。
规则模板
下拉可选择规则模板,完整性、唯一性、及时性、有效性、一致性、稳定性、自定义SQL。
完整性:包括字段空值校验和字段空字符串校验。
唯一性:包含字段唯一性校验、字段分组个数校验和字段重复值个数校验。
及时性:包含时间函数比较、单表时间字段比较和两表时间字段比较。
有效性:包含字段格式校验、字段长度校验、字段值域校验、码表参照对比和数据标准码表参照对比(需开通数据标准模块)。
一致性:包含单表字段值一致性比较、单表字段统计值一致性比较、单字段业务逻辑一致性比较、两表字段值一致性比较、两表字段统计值一致性比较、两表字段业务逻辑一致性比较和跨源两表字段统计值一致性比较。
稳定性:包含表稳定性校验、表波动性校验、字段稳定性校验和字段波动性校验。
自定义SQL:包含自定义统计指标校验和自定义数据详情校验。
详情请参见模板类型说明。
规则类型
规则类型和模板有关,是模板最基础的属性,可用于说明和筛选功能。
监控粒度
当配置类型为自定义SQL时支持配置监控粒度,可以选择全表或指定具体监控字段。
模板配置
模板信息
当选择质量规则模板时,为您展示模板的配置信息。如需修改配置信息,可以在质量规则模板中进行修改。
规则配置
规则配置
规则配置因选择不同的规则模板而变化。详情请参见数据表参数配置。
校验表数据过滤:默认关闭,开启后可配置校验表的过滤条件或分区过滤或普通数据过滤,过滤条件将会直接追加至校验SQL中;如校验表有分区过滤需求,建议在调度配置中配置分区表达式,配置后会以校验分区为最小查看粒度查看质量报告。
当规则模板选择一致性/两表字段统计值一致性比较、一致性/跨源两表字段统计值一致性比较时,可以选择是否开启对比表数据过滤,开启后可以配置对比表的过滤条件或分区过滤或普通数据过滤,过滤条件将会直接追加至校验SQL中。
校验配置
规则校验
数据质量规则校验后,结果会和异常校验的配置进行对比,符合条件则校验结果为不通过;同时触发告警等后续流程。
异常校验可用指标由模板和配置内容决定,支持多种条件的and / or条件,实际配置中建议小于3条。
详情请参见校验配置说明。
归档配置
异常归档
默认关闭,开启后可以将异常数据归档到文件或表中,质量校验后可以下载、分析归档的异常数据。
归档模式支持仅归档异常字段和归档完整记录。
仅归档异常字段:只去重归档当前监控字段,适用于通过单个字段就可以完整确定异常数据的情况。
归档完整记录:归档异常数据所在的整条记录,适用于必须通过完整记录才能定位异常数据的情况。 注意:因归档完整记录会极大增加归档数据量,建议正常情况下都使用仅归档异常字段。
归档位置支持默认文件服务器和异常数据归档表。若未创建异常归档表,可点击管理异常归档表创建,详情请参见添加异常归档表。
默认文件服务器:指Dataphin部署时配置的系统文件服务器,您可以在校验记录-校验详情页面直接下载异常数据,也可以直接访问默认文件服务器获取异常数据。使用默认文件服务器时,每次校验执行最多归档100条异常数据,适用于小数据量校验的场景。
异常数据归档表:如果您希望存储更多异常数据或将不同校验记录的异常数据放在一起,以便后续的对比分析,建议自行指定归档表。每条质量规则每次运行最多记录10000条校验异常的数据,除了可以直接在校验记录页面快捷下载单次校验的异常数据,您也可以直接访问归档表、自定义表生命周期,有更高的灵活性。
说明针对本次运行涉及到的所有规则产生的异常数据进行汇总下载,并且下载数量不超过1000条,如果您希望查看更多的数据,建议归档到指定的异常归档表后直接访问归档表获取。
异常归档表需要满足特定的格式要求,否则可能在写入数据时报错,影响使用,详情请参见添加异常归档表。
业务属性配置
属性信息
业务属性填写规范取决于质量规则属性的配置。例如:归口管理部门所对应的字段取值类型为枚举值(多选),可选枚举值范围为大数据部、业务部、技术部。因此,创建质量规则时,该属性值为下拉多选框,可选项为枚举值(多选),可选枚举值范围为大数据部、业务部、技术部。
规则负责人所对应的字段取值类型为自定义输入,属性字段长度为256。因此,在创建质量规则时,该属性值可以输入不超过256个字符。
若属性字段的填写方式为范围区间,则配置方式如下:
范围区间:常用于取值范围是连续数值或日期的情况。可选择>、>=、<、<=四种符号。更多属性配置,请参见新建及管理质量规则属性。
调度属性配置
调度方式
支持选择已配置的调度;若暂未决定调度方式,您可创建质量规则后再配置。如需新建,请参见新建调度。
质量分配置
计分方式
支持质量校验状态和数据合格比例两种计分方式。
质量校验状态:按照当前规则最近一次执行成功的校验记录的校验状态进行打分,校验通过得100分,校验不通过得0分。
数据合格比例:将当前规则最近一次执行成功的校验记录中的正常数据的比例(即正常率)作为分数,如数据格式有效性是80%,那么质量分就是80分。
不同的规则模板支持的计分方式不同,仅支持质量校验状态计分方式说明如下:
唯一性规则大类的字段分组个数校验、字段重复值个数校验。
一致性规则大类的单表字段统计值一致性比较、跨源两表字段统计值一致性比较。
稳定性规则大类。
自定义SQL规则大类的自定义统计指标校验。
质量分权重
质量规则的质量分权重,用于统计监控对象的质量分。支持选择1-10之间的整数。
单击确定,完成规则配置。
预览SQL
关键信息没有填写完整,预览SQL不可用。
左边为上次保存配置的SQL预览,若未配置,则为空;右边为当前配置的SQL预览。
规则配置列表
您可以在规则配置列表页面查看已经配置的数据表规则信息,并进行查看、编辑、试跑、运行、删除等操作。
区域 | 描述 |
①筛选及搜索区 | 支持按照对象或规则名称进行快捷搜索。 支持按照规则类型、规则模板、规则强度、试跑状态、生效状态进行筛选。 说明 若质量规则属性配置了可搜索、可筛选的业务属性且为启用状态,则可根据该属性进行搜索或筛选。 |
②列表区 | 为您展示规则配置列表的对象名称、规则名称、试跑状态、生效状态、规则类型、规则模板、规则强度、调度类型、相关知识库文档信息,单击刷新前的图标,可选择您需要展示的规则列表字段。
|
③操作区 | 您可进行查看、克隆、编辑、试跑、运行、调度配置、关联知识库文档、质量分配置、删除操作。
|
④批量操作区 | 您可批量进行试跑、运行、配置调度、开启、关闭、修改业务属性、关联知识库文档、质量分配置、删除操作。
|
新建调度
规则配置调度时,可以基于当前已有的调度快速进行配置(每个表上限20个调度规则)。
同一个规则最多能配置10个调度。
调度配置完全一致时,支持自动去重。
校验范围会作为质量校验时的过滤条件下发到质量校验的语句中,控制每次质量校验的范围。校验范围也会作为后续质量报告等下游的基本单元,质量报告的查看会以校验范围为最小查看粒度。
在质量规则详情页面,按照下图操作指引,进入新建调度对话框。
在新建调度对话框中,配置参数。
参数
描述
调度名称
自定义调度名称,不超过64个字符。
调度类型
支持定时调度和固定任务触发调度。
定时调度:根据设置的调度时间,支持定时、周期性地对数据进行质量检测,适合数据产出时间相对固定的场景。
调度周期:质量规则运行会占用一定的计算资源,建议避免同一时间并发执行多条质量规则,以免影响生产任务的正常运行。调度周期包含日、周、月、小时、分钟五种周期类型。
固定任务触发调度:在指定的任务运行成功后或运行前,执行配置的质量规则。支持选择引擎SQL、离线管道、Python、Shell、Virtual、Datax、Spark_jar、Hive_MR、数据库SQL节点的任务类型触发任务。适用于表修改任务固定的情况。
说明固定任务触发只能选择生产环境任务,若规则强度配置了强规则,调度任务校验失败,可能会影响线上任务,请根据业务需求谨慎操作。
触发时机:选择进行质量检测的触发时机。支持选择所有任务都运行成功后触发、每个任务每次运行成功后均触发和每个任务每次运行前触发。
触发任务:支持选择当前用户有运维权限的生产任务节点,可以根据节点输出名称搜索。
说明当触发时机选择所有任务都运行成功后触发时,触发任务建议选择同调度周期的任务,避免因调度周期不同而导致规则延迟运行,质量检测结果延迟产出。
调度条件
默认关闭,开启后,在质量规则正式调度前,会先判断是否满足调度条件。满足条件才会正式调度,不满足条件则忽略本次调度。
业务日期/执行日期:若调度类型选择定时调度(定时调度不支持执行日期)、固定任务触发调度,支持配置日期,可选择普通日历或自定义日历,如何自定义日历,请参见新建公共日历。
若选择普通日历,则条件可选月份、星期、日期。例如下图:
若选择自定义日历,则条件可选日期类型、标签。例如下图:
实例类型:若调度类型选择固定任务触发调度,支持配置实例类型,可选择周期实例、补数据实例、手动实例。例如下图:
说明至少配置一条规则。如需添加规则,请单击+添加规则按钮。
最多配置10个调度条件。
调度条件之间的关系可配置为且、或。
校验范围表达式
为可输入的下拉选择框,支持直接输入需要校验的范围,如
ds='${yyyyMMdd}'
;也可以选择内置的校验范围表达式然后进行修改,以帮助您快速配置,分区表达式详情请参见内置分区表达式类型。说明若有多个条件进行校验,可用and或or进行连接,如
province="浙江" and ds<=${yyyyMMdd}。
若质量规则中配置了过滤条件,则校验范围表达式和过滤条件之间为and关系,校验数据时,两个条件会一起进行过滤。
校验范围表达式支持对全表进行扫描。
注意:全表扫描将会消耗较大的资源,并且部分不支持全表扫描,建议配置分区表达式以避免全表扫描。
校验范围预算
默认业务日期当天。
单击确定,完成调度配置。
调度配置列表
调度创建完成后,您可以在调度配置列表进行查看、编辑、克隆、删除等操作。
区域 | 描述 |
①筛选及搜索区 | 支持按照调度名称进行快捷搜索。 支持按照定时调度、固定任务触发调度进行筛选。 |
②列表区 | 为您展示规则配置列表的调度名称、调度类型、最后更新人、最后更新时间信息。 |
③操作区 | 您可以对调度执行编辑、克隆、删除操作。
|
告警配置
您可以给不同的规则配置不同的告警方式以实现区分告警,如:为强规则异常配置电话告警,弱规则异常配置短信告警;如果一个规则同时命中了多条告警配置,支持设置告警的生效策略。
单个监控对象下支持创建不超过20个告警配置。
在质量规则详情页面,按照下图指引,进入新建告警配置对话框。
在新建告警配置对话框中,配置参数。
参数
描述
覆盖范围
支持选择所有规则、所有强规则、所有弱规则和自定义。
说明单个监控对象下,所有规则、所有强规则和所有弱规则3种范围支持各配置一条告警,后续新增的规则根据规则强度自动匹配对应的告警;如需变更其中的某一条告警配置,可修改已有配置。
自定义范围可选择当前监控对象下已配置的所有规则,不超过200条。
告警配置名称
单个监控对象下告警配置名称唯一,不超过256个字符。
告警接收人
配置告警接收人及告警方式。需选择至少一种告警接收人及告警方式。
告警接收人:支持选择自定义、值班表和质量负责人三种告警接收人。
支持配置不超过5个自定义告警接收人;支持配置不超过3个值班表。
告警方式:支持选择电话、邮件、短信、钉钉、飞书、企业微信、自定义渠道不同的接收方式。此接收方式可通过配置渠道设置进行管控。
单击确定,完成告警配置。
告警配置列表
告警配置完成后,您可以在告警配置列表中进行排序、编辑、删除操作。
序号 | 描述 |
①排序区 | 支持配置一条质量规则符合多条告警配置时的告警生效策略:
|
②列表区 | 为您展示告警配置的名称、生效范围、每种告警类型的具体接收人以及对应的告警接收方式。 生效范围:自定义告警支持查看配置的对象名和规则名,若该规则被删除,则无法查看对象名,建议您更新告警配置。 |
③操作区 | 您可对配置的告警执行编辑和删除操作。
|
添加异常归档表
异常归档表实现质量规则校验异常的记录归档。
在质量规则详情页面,按照下图操作指引,进入添加异常归档表对话框。
在添加异常归档表对话框中,配置参数。
添加方式支持选择已有表和新建表两种方式。增加了特殊的质量校验字段,异常数据归档不会写入原来的数据表。
选择已有表:支持选择同项目或同数据源表,归档表必须包含质量监控表的所有字段及校验字段,脚本格式如下:
create table 当前表名_exception_data (dataphin_quality_tenant_id varchar(64) comment '租户ID' , dataphin_quality_rule_id varchar(64) comment '质量规则ID', dataphin_quality_rule_name varchar(256) comment '质量规则名称', dataphin_quality_column_name varchar(1024) comment '校验字段名称', dataphin_quality_watch_task_id varchar(128) comment '监控对象任务ID', dataphin_quality_rule_task_id varchar(64) comment '规则任务ID', dataphin_quality_validate_time varchar(64) comment '质量校验时间', dataphin_quality_archive_mode varchar(32) comment '异常归档模式,ONLY_ERROR_FIELD/FULL_RECORD', dataphin_quality_error_data string comment '异常数据', ljba_id bigint comment 'ljba_主键', ljb_id bigint comment 'ljb_主键', col_tinyint tinyint comment '字段类型为TINYINT且小写', col_tinyint_02 tinyint comment '2', col_smallint smallint comment '字段类型为SMALLINT且小写', col_smallint_02 smallint comment '4', col_int int comment '字段类型为INT且小写', col_int_02 int comment '6', col_bigint bigint comment '字段类型为BIGINT且小写', col_bigint_02 bigint comment '8', col_float float comment '字段类型为FLOAT且小写', col_float_02 float comment '10', col_double double comment '字段类型为DOUBLE且小写', col_double_02 double comment '11', col_decimal decimal(38,18) comment '字段类型为DECIMAL(38,18)且小写', col_decimal_02 decimal(38,18) comment '12', col_varchar varchar(500) comment '字段类型为VARCHAR(500)且小写', col_varchar_02 varchar(500) comment '13', col_char char(10) comment '字段类型为CHAR(10)且小写', col_char_02 char(10) comment '14', col_string string comment '字段类型为STRING且小写', col_string_02 string comment '15', col_date date comment '字段类型为DATE且小写', col_date_02 date comment '16', col_datetime datetime comment '字段类型为DATETIME且小写', col_datetime_02 datetime comment '17', col_timestmap timestamp comment '字段类型为TIMESTAMP且小写', col_timestmap_02 timestamp comment '18', col_boolean boolean comment '字段类型为BOOLEAN且小写', col_boolean_02 boolean comment '19', col_binary binary comment '字段类型为BINARY且小写', col_binary_02 binary comment '20', col_array array<int> comment '字段类型为ARRAY<int>且小写', col_array_02 array<string> comment '21', col_map map<string,string> comment '字段类型为MAP<string, string>且小写', col_map_02 map<string,int> comment '22', ds string comment '日期分区, yyyyMMdd' ) partitioned by (dataphin_quality_validate_date string comment '校验日期(分区字段)');
新建表:可自定义表名,需在归档表所属项目或所属板块内,默认填入当前表名_exception_data。添加成功后会在同库或同数据源新建表。支持输入字母、数字、下划线(_)以及点(.),不超过128个字符。
监控表为物理表时,将在监控表所在项目创建归档表。
监控表为维度逻辑表、事实逻辑表时,默认会在监控表所在项目创建归档表,也可以手动指定为监控表板块下的项目,如projectA.table_name。
监控表是汇总逻辑表时,归档表名建议指定同板块下的项目名称,否则会自动归档到监控表所在板块下的一个项目。
归档表必须包含质量监控表的所有字段及校验字段,脚本格式如下:
create table 当前表名_exception_data (dataphin_quality_tenant_id varchar(64) comment '租户ID' , dataphin_quality_rule_id varchar(64) comment '质量规则ID', dataphin_quality_rule_name varchar(256) comment '质量规则名称', dataphin_quality_column_name varchar(1024) comment '校验字段名称', dataphin_quality_watch_task_id varchar(128) comment '监控对象任务ID', dataphin_quality_rule_task_id varchar(64) comment '规则任务ID', dataphin_quality_validate_time varchar(64) comment '质量校验时间', dataphin_quality_archive_mode varchar(32) comment '异常归档模式,ONLY_ERROR_FIELD/FULL_RECORD', dataphin_quality_error_data string comment '异常数据', ljba_id bigint comment 'ljba_主键', ljb_id bigint comment 'ljb_主键', col_tinyint tinyint comment '字段类型为TINYINT且小写', col_tinyint_02 tinyint comment '2', col_smallint smallint comment '字段类型为SMALLINT且小写', col_smallint_02 smallint comment '4', col_int int comment '字段类型为INT且小写', col_int_02 int comment '6', col_bigint bigint comment '字段类型为BIGINT且小写', col_bigint_02 bigint comment '8', col_float float comment '字段类型为FLOAT且小写', col_float_02 float comment '10', col_double double comment '字段类型为DOUBLE且小写', col_double_02 double comment '11', col_decimal decimal(38,18) comment '字段类型为DECIMAL(38,18)且小写', col_decimal_02 decimal(38,18) comment '12', col_varchar varchar(500) comment '字段类型为VARCHAR(500)且小写', col_varchar_02 varchar(500) comment '13', col_char char(10) comment '字段类型为CHAR(10)且小写', col_char_02 char(10) comment '14', col_string string comment '字段类型为STRING且小写', col_string_02 string comment '15', col_date date comment '字段类型为DATE且小写', col_date_02 date comment '16', col_datetime datetime comment '字段类型为DATETIME且小写', col_datetime_02 datetime comment '17', col_timestmap timestamp comment '字段类型为TIMESTAMP且小写', col_timestmap_02 timestamp comment '18', col_boolean boolean comment '字段类型为BOOLEAN且小写', col_boolean_02 boolean comment '19', col_binary binary comment '字段类型为BINARY且小写', col_binary_02 binary comment '20', col_array array<int> comment '字段类型为ARRAY<int>且小写', col_array_02 array<string> comment '21', col_map map<string,string> comment '字段类型为MAP<string, string>且小写', col_map_02 map<string,int> comment '22', ds string comment '日期分区, yyyyMMdd' ) partitioned by (dataphin_quality_validate_date string comment '校验日期(分区字段)');
单击确定,完成异常归档表添加。
查看异常归档表列表
添加成功后,默认第一个为归档表。点击异常归档表的名称,可以查看字段、数据类型、字段描述信息。您可以对归档表执行设为默认、删除操作。
设为默认:若把该表设为默认,则异常数据只能归档到默认的归档表。
删除:仅删除和异常归档表的引用关系,不会删除异常归档表本身,删除后如果需要可以重新添加。
查看质量报告
单击质量报告,查看当前质量规则的规则校验概览和规则校验明细。
您可根据异常结果、分区时间、规则或对象的名称关键字快捷筛选校验明细。
单击图标,查看质量规则的规则校验详情。
单击图标,查看质量规则的执行日志。
设置质量规则权限管理
单击权限管理,指定成员查看校验记录详情、质量规则详情、质量报告。
可查看详情:可选择所有成员或仅超级管理员、质量管理员和质量负责人。
单击确定,完成权限管理配置。
后续步骤
上述质量规则配置完成后,即可在全域数据表规则列表页面查看。详情请参见查看监控对象列表。