新建数据质量作业
质量作业可将创建的规则应用到建好的表中进行质量监控。
配置流程
- 在DataArts Studio控制台首页,选择对应工作空间的“数据质量”模块,进入数据质量页面。
- (可选)选择 ,新建目录。如果已存在可用的目录,可以不用新建目录。注意,规则模板、质量作业和对账作业的目录为同一目录,择一操作即可。
当前系统支持“新建目录”和“同步主题为目录”两种方式:
选择“新建目录”时,直接在目录处单击,输入目录名称,即可完成目录新建。直接新建目录的最大深度拓展为7层。图1 新建目录
选择“同步主题为目录”时,在目录处单击,即可将数据架构处的主题同步到目录中(仅支持同步“已发布”状态的主题)。同步后的主题目录与数据架构发布后主题一致,按照主题层级如、等进行展示。- 直接新建的普通目录不受同步影响。但当普通目录名称与主题名称冲突时:
- 主题首次同步名称冲突时,会将普通目录修改为主题目录属性,带上主题层级如、等进行展示。
- 主题修改后再次同步名称冲突时,会出现同步失败的情况。
- 不支持变更自动同步。即数据架构处的主题或主题层级变更并发布后,需要手动再次单击才能同步到主题目录。
特殊的,数据架构处的主题或主题层级删除后,手动同步后目录不会删除,仅去除主题目录属性,作为普通目录进行展示。
- 完成同步后,若有同步失败的主题,系统会自动弹出同步结果明细,可查看同步失败的主题名称。
图2 同步主题为目录
- 直接新建的普通目录不受同步影响。但当普通目录名称与主题名称冲突时:
- 在“新建”,在弹出的对话框中,参见表1配置相关参数。
表1 配置作业参数 参数名
说明
*作业名称
质量作业的名称。
描述
为更好的识别数据质量作业,此处加以描述信息。描述信息长度不能超过1024个字符。
标签
选择所需的标签。标签是在数据地图组件中定义的标签。如果未使用数据地图组件,则标签功能不生效。
*所属目录
数据质量作业的存储目录,可选择已创建的目录。目录创建请参见(可选)新建目录。
*作业级别
支持提示、一般、严重和致命四种级别,作业级别决定发出通知消息的模板样式。
问题处理人
选择质量作业的问题处理人。
超时时间
输入超时时间。输入值必须在5到1440之间。单位为分钟。该参数为空或者默认1440分钟时,超时时间系统默认为24小时,支持修改。
页面单击 - 单击“下一步”,进入规则配置页面,每个规则卡片对应一个子作业。您需要单击规则卡片中的,然后参见表2配置数据质量规则。默认规则配置完成后,您也可选择继续添加更多的质量规则,创建完成后单击下一步,即可将创建的所有规则应用到已建好的库或表中。
图3 打开质量作业规则配置
表2 配置模板规则 添加方式
配置
说明
基本信息
子作业名称
在作业的执行结果中,每条规则对应一个子作业。为便于结果查看和日志定位,建议您补充子作业信息。
描述
为更好的识别子作业,此处加以描述信息。描述信息长度不能超过1024个字符。
来源对象
规则类型
包括库级规则、表级规则、字段级规则、跨字段级规则、跨源级规则、多表多字段和自定义规则,自定义规则可针对表中的具体字段配置监控规则。
说明:- 选择跨字段级规则时,需要在计算范围中同时配置数据表和参考表。
- 跨源级规则目前只支持基于Hetu连接的MRS Hive和DWS之间的字段对比作业。
- 配置跨源级规则前,需要在MRS Hetu中创建MRS Hive数据源和GUASSDB数据源。详情请参考配置Hive数据源和配置GUASSDB数据源。
数据连接
来源对象/目的对象支持的数据源类型:DWS、MRS Hive、MRS Spark、DLI、ORACLE、RDS(MySQL、PostgreSQL)、Hetu、MRS Spark(Hudi)、MRS ClickHouse、DORIS。
从下拉列表中选择已创建的数据连接。
说明:- 规则都是基于数据连接的,所以在建立数据质量规则之前需要先到管理中心模块中建立数据连接。
- 针对通过代理连接的MRS Hive,需要选择MRS API方式或者代理方式提交:
- MRS API方式:通过MRS API的方式提交。历史作业默认是MRS API提交,编辑作业时建议不修改。
- 代理方式:通过用户名、密码访问的方式提交。新建作业建议选择代理提交,可以避免权限问题导致的作业提交失败。
- 数据质量当前不支持MRS Hive组件的严格模式。
数据库
选择配置的数据质量规则所应用到的数据库。
说明:- 数据库基于已建立的数据连接。
- 当“规则类型”选择“库级规则”或“表级规则”,数据对象选择对应的数据库即可。
- 当“规则类型”选择“自定义规则”,选择对应的数据库即可。
数据表
选择配置的数据质量规则所应用到的表。
说明:- 数据表与数据库强相关,基于已选择的数据库。
- 当“规则类型”选择“表级规则”,数据对象选择对应的数据表。
- 当“规则类型”选择“自定义规则”,表名选择对应的数据表。
SQL
当“规则类型”选择“自定义规则”时,需要配置该参数。此处需输入完整的SQL语句,定义如何对数据对象进行数据质量监控。
支持对SQL语句进行语义校验,语义校验结果仅供参考。
参数默认值
自定义SQL可设置入参用于执行,SQL入参需要与参数默认值顺序匹配(数据质量单点执行时)。
说明:当通过数据开发任务调度质量算子的时候,优先使用数据开发中定义的参数值。
字段名
仅用于异常表。配置字段名称用于异常表数据。
示例:column1,column2,column3
失败策略
选择是否勾选“忽略规则错误”。
选择字段
当“规则类型”选择“字段级规则”,需要配置该参数。此处选择对应数据表中的字段。
说明:数据质量字段级别校验不支持对字段名为单个字母(例如:a,b,c,d...等)的字段进行校验。
数据对象
当“规则类型”选择“自定义规则”时,不需要配置该参数。其他规则类型均需要配置该参数,此处选择参考的数据字段。
选择表名时,搜索框支持大小写敏感。
参考数据对象
当“规则类型”选择“跨字段级规则”,需要配置该参数。此处选择参考的数据字段。
选择表名时,搜索框支持大小写敏感。
维度
当“规则类型”选择“自定义规则”时,需要配置该参数。将该自定义规则与质量六性(完整性、有效性、及时性、一致性、准确性、唯一性)进行关联。
输出结果说明
当“规则类型”选择“自定义规则”时,需要配置该参数。
- 对SQL获得结果的每一列进行说明,与SQL关系定义的输出结果顺序一一对应,输出结果说明字段个数与SQL的输出参数个数不相等时,会保存失败并提示报错信息。自定义SQL结果展示最多300条,超出部分会自动截断。
- 输出结果说明只能包含中文,英文字母、数字、下划线、中划线、空格等字符。
- 例如SQL设置为:select max(${Column1}),min(${Column2}) from ${Schema_Table1},则输出结果说明可写为“最大值,最小值”,注意输入顺序。输出结果说明中有多个字段时,用英文逗号进行分隔。如果输出结果说明中使用中文逗号,在保存时会自动替换成英文逗号。
质量规则
入参
当“规则类型”选择“多表多字段”,需要配置该参数。
比如,入参为Input_String1,参数值配置为${yyyyMMdd}
说明:当“规则类型”选择“多表多字段”时,选择了规则模板对应的版本号以后,SQL语句会自动显示。SQL语句中包含的参数与入参数量是一致的。
计算引擎
队列名称
选择运行质量作业的引擎。仅数据连接为DLI、Hive或Hetu类型时,此参数有效,输入队列名称。
当连接类型为Hetu,规则类型为除了库级以外的所有系统模板,自定义模板,自定义规则时,队列名称指的是Hetu引擎的资源队列名称。查看Hetu引擎的资源队列名称,需要登录MRS的FusionInsight Manager系统,单击左侧导航的HetuEngine,在基本信息区域,单击HSConsole WebUI链接,在计算实例列表中查看Hetu引擎的资源队列名称。
规则模板
模板名称
选择系统内置的或者用户自定义的规则模板。
版本
仅“模板名称”选择为自定义的规则模板时,需要配置该参数。自定义的规则模板发布后,会产生对应的版本号,此处选择所需的版本。
权重
设置规则的权重,支持按照字段级别设置权重。权重范围:【1-9】,整数。默认值为5。
计算范围
选择扫描区域
支持选择“全表扫描”或“条件扫描”,默认为全表扫描。
当仅需计算一部分数据,或需周期性按时间戳运行质量作业时,建议通过设置where条件进行条件扫描。
数据质量作业支持传参,可以将环境变量参数传递给数据质量作业。
系统支持对多个表配置规则时,不同表的数据范围可支持独立设置。当“数据对象”和“参考数据对象”的字段名称都配置时,需要配置所对应扫描区域的数据扫描范围。
where条件
输入where子句,系统会选择符合条件的数据进行扫描。
例如需要筛选数据表中“age”字段在 (18, 60] 区间范围内的数据时,where条件可设置为如下内容:age > 18 and age <= 60
where条件还支持输入为SQL动态表达式,例如当需要根据“time”字段筛选数据表中24小时前的数据时,where条件可设置为如下内容:
time >= (date_trunc('hour', now()) - interval '24 h') and time <= (date_trunc('hour', now()))
数据质量支持传递参数,可以输入条件表达式,例如环境变量传参,可设置如下的内容:
p_date=${target_date}
数据质量支持从数据开发传递参数给数据质量,并且会主动获取数据开发的参数,自定义规则模板和系统模板都支持。
参数默认值
当选择“条件扫描”时可填写。
请按照输入的where条件文本框中出现的参数名,依次填写默认参数值。
说明:参数默认值优先由数据开发传递,为空时可能会造成质量作业运行出错。
数据开发传递参数给数据质量后,作业运行完以后,通过“查看SQL”可以查看所传递的数据开发的参数以及参数值。
告警条件
告警表达式
此参数可选,如果您需要针对当前规则设定告警条件,则可以在此配置告警条件的表达式。如果您需要通过多条规则的逻辑运算统一设置告警条件的表达式,此处无需设置,可在下一步的告警配置中统一设置。
配置规则的告警条件后,系统通过“告警参数”的值,结合告警条件进行真假判断,如果结果为真则进行告警。另外,除了单一告警表达式的结果,您还可以通过逻辑运算符组成更复杂的告警条件进行告警。当前表达式中支持如下逻辑运算符,且可以通过“(”和“)”进行包围:
- +:相加
- -:相减
- *:相乘
- /:相除
- ==:等于
- !=:不等于
- >:大于
- <:小于
- >=:大于等于
- <=:小于等于
- !:非
- ||:或
- &&:与
例如,“规则模板”为“字段空值”时,您可以参考如下样例进行配置:
- 需要配置字段空值大于10时告警,则此处可设置为“${1}>10”,其中“${1}”为通过告警参数配置的“空值行数”。
- 需要配置有字段空值率大于80%时告警,则此处可设置为“${3}>0.8”,其中“${3}”为通过告警参数配置的“空值率”。
- 需要配置字段空值大于10或字段空值率大于80%时告警,则此处可设置为“(${1}>10)||(${3}>0.8)”,其中“${1}”和“${3}”分别为通过告警参数配置的“空值行数”和“空值率”,“||”表示满足两个条件之一即会告警。
告警参数
此参数来源于规则模板的输出结果。您可以单击界面显示的参数从而输入告警表达式中的告警参数,单击后系统会在“告警表达式”输入框给出参数的表达式。
例如“规则模板”为“字段空值”时,单击告警参数“空值行数”,在“告警表达式”输入框会显示为“${1}”。
逻辑运算符
可选,本参数支持将单一告警表达式的结果进行逻辑运算,组成更复杂的告警条件。
您可以将鼠标光标放在“告警表达式”输入框处需要进行逻辑运算的两个告警表达式之间,然后单击输入如下之一运算符。另外,您也可以手动输入,当前表达式中支持如下逻辑运算符,且可以通过“(”和“)”进行包围:
- +:相加
- -:相减
- *:相乘
- /:相除
- ==:等于
- !=:不等于
- >:大于
- <:小于
- >=:大于等于
- <=:小于等于
- !:非
- ||:或
- &&:与
例如,“规则模板”为“字段空值”,需要配置字段空值大于10或字段空值率大于80%时告警,则“告警表达式”可设置为“(${1}>10)||(${3}>0.8)”,其中“${1}”和“${3}”分别为通过告警参数配置的“空值行数”和“空值率”,“||”表示满足两个条件之一即会告警。
质量评分
当“规则类型”选择“自定义规则”时,需要配置该参数。
生成异常数据
开启“生成异常数据”开关,单击“选择库表”可将质量作业中不符合设定规则的异常数据存储在异常表中。
说明:- 系统内置模板,“表级规则”中的“表行数” 模板。“字段级规则”中的“字段平均值”、“字段汇总值”、“字段最大值”、“字段最小值”模板不支持生成异常数据。
- 当质量作业设置周期调度或重跑时,每次实例运行的扫描的异常数据会持续插入该异常表。建议您定期到该数据湖中清理异常表数据,避免异常数据表超大带来的成本与性能问题。
- 当规则类型选择“跨源级规则”,必须开启“生成异常数据”。
异常表
单击选择数据库和schema,可以自定义配置输出数据表名的前后缀、选择已有表和异常字段。如果不配置异常字段,默认会输出异常表的所有字段。
说明:自定义异常表包含四种方式:添加表前后缀、添加表前缀、添加表后缀、选择已有表。表前缀以英文字母和下划线开头,且只能包含英文字母、数字和下划线。表后缀只能包含英文字母、数字和下划线。
当单击“选择已有表”时,需要选择表名,数据库和schema系统默认,如果未选择表名,则显示数据库名.scheme.undefined。
设置异常表时,系统会默认添加表后缀err。
输出配置
- 输出规则配置:勾选,则可在异常表中显示质量作业的配置信息,方便查看异常数据产生的源头。
- 输出空值:勾选,则当空值不满足设定规则时,可在异常表中输出空值。
- 清理异常数据:勾选,清理异常数据会清除当前子规则历史异常数据,请谨慎操作。数据质量作业在重跑时,会清空异常表中的历史数据。
异常数据数量
可选择输出全部的异常数据,或者设定数量的异常数据。
异常表SQL
当“规则类型”选择“自定义规则”时,需要配置该参数。此处需输入完整的SQL语句,指定输出哪些数据是异常数据。
查看相同规则
单击后可查看如下相同规则:
- 能够根据表和字段判断规则的重复性。
- 提示已存在相关子规则和质量作业,您可看到已有规则。
- 单击“下一步”以后,设置告警配置信息。如果您在上一步的规则配置中已配置告警表达式,此处会自动带出已配置的表达式;如果未配置,则您可在此进行配置。配置多条(2条及以上)子规则时,则可以选择如下两种告警配置方式之一进行配置:
- 支持通过子规则的告警条件,分别上报告警。
- 将子规则之间的告警参数值通过数学运算和逻辑运算,设置一个统一的告警条件表达式来表示作业是否告警。
告警规则系统会默认1个,最多允许添加5个。
配置告警信息时,以上两种告警配置方式均支持选择调度日历信息,在上报告警时,会按照日历告警规则,判断当前日期是否匹配调度日历,去上报告警。如果匹配不到,则按照默认告警规则上报告警。
配置调度日历信息,请参见配置调度日历。
告警配置的更多操作:
- 上移:默认的告警规则不允许上移。
- 下移:默认的告警规则不允许下移。
- 复制:可以对告警规则进行复制。包含日历信息的告警规则在复制时,仅复制告警表达式,不会带日历信息。
- 删除:默认的告警规则不允许删除。
当前表达式中支持如下逻辑运算符,且可以通过“(”和“)”进行包围:- +:相加
- -:相减
- *:相乘
- /:相除
- ==:等于
- !=:不等于
- >:大于
- <:小于
- >=:大于等于
- <=:小于等于
- !:非
- ||:或
- &&:与
- 单击“下一步”,设置订阅配置信息,如果需要接收SMN通知,打开通知状态,选择通知类型和SMN服务主题。
通知类型包含“触发告警”和“运行成功”两种,当前仅支持“短信”、“邮件”这两种协议的订阅终端订阅主题。
开启订阅配置后,每个满足通知类型的子作业都会发送通知。如果开启告警,失败告警通知不需要单独配置,任务运行失败后会发送告警。
打开“通知抑制”后,告警上报的通知策略可以进行配置,在最近N分钟以内,连续N次告警,则发送告警通知。最近时间可支持配置1~360分钟,连续次数可支持配置1~10次。
- 单击“下一步”,选择调度方式,支持单次调度和周期调度两种方式,周期调度的相关参数配置请参见表3。配置完成后单击“提交”。
- 单次调度会产生手动任务的实例,手动任务的特点是没有调度依赖,只需要手动触发即可。
- 周期调度会产生周期实例,周期实例是周期任务达到启用调度所配置的周期性运行时间时,被自动调度起来的实例快照。
- 周期任务每调度一次,便生成一个实例工作流。您可以对已调度起的实例任务进行日常的运维管理,如查看运行状态,对任务进行终止、重跑等操作。
- 只有支持委托提交作业的MRS集群,才支持质量作业周期调度。 支持委托方式提交作业的MRS集群有:
- MRS的非安全集群。
- MRS的安全集群,集群版本大于2.1.0,并且安装了MRS 2.1.0.1以上的补丁。
表3 配置周期调度参数 参数名
说明
生效日期
调度任务的生效日期。
调度周期
选择调度任务的执行周期,并配置相关参数。
- 分钟
- 小时
- 天
- 周
说明:
- 调度周期选择分钟/小时,需配置调度的开始时间、间隔时间和结束时间。开始时间目前支持设置到分钟级别,进行错峰调度。
- 调度周期选择天,需要配置调度时间,即确定了调度任务于每天的几时几分启用。
- 调度周期选择周,需要配置生效时间和调度时间,即确定了调度任务于周几的几时几分启用。
质量作业创建完成后,可以在作业里面进行查看,系统支持通过作业名称、创建人、责任人、表名、最近运行时间进行筛选。同时,系统支持模糊搜索。
质量作业创建完成后,可以对质量作业进行编辑、删除、运行、启动调度、停止调度等操作。
单次调度模式不支持启动调度。
运行单个质量作业
系统支持运行单个质量作业。
- 选择“数据质量监控 > 质量作业”,选择要运行的质量作业。
- 单击“操作”列的“运行”。
- 企业模式下,选择运行环境,系统支持可选择“开发环境”或“生产环境”。
- 单击“确定”。
导出质量作业
系统支持批量导出质量作业,一次最多可导出200个质量作业。导出作业时,导出的单元格内容最大长度支持65534个字符。
- 选择“数据质量监控 > 质量作业”,选择要导出的质量作业。
图4 导出
- 单击“导出”,弹出“导出质量作业”对话框。
图5 导出质量作业
- 切换到“导出记录”页签,可查看当前任务的导出结果。
图6 导出记录
- 在导出文件列表中,单击最新导出文件对应的“下载”,可将质量作业的Excel表格下载到本地。
导出全部质量作业
系统支持导出全部质量作业。导出作业时,导出的单元格内容最大长度支持65534个字符。
- 选择“数据质量监控 > 质量作业”,单击“全部导出”。
图7 全部导出
- 在弹出“导出质量作业”对话框,单击“导出”。
图8 导出全部质量作业
- 切换到“导出记录”页签,可查看当前任务的导出结果。
图9 导出记录
- 在导出文件列表中,单击最新导出文件对应的“下载”,可将质量作业的Excel表格下载到本地。
导入质量作业
系统支持批量导入质量作业,一次最大可导入4MB数据的文件。导入作业时,导入的单元格内容最大长度支持65534个字符。
- 选择“数据质量监控 > 质量作业”,单击“导入”,弹出“导入质量作业”对话框。
图10 导入质量作业
- 在“导入配置”页签,选择模板名称重名策略。
- 终止:如果质量作业名称有重复,则全部导入失败。
- 跳过:如果质量作业名称有重复,会忽略后继续导入。
- 覆盖:如果质量作业名称有重复,会覆盖现有同名作业。
如果选择覆盖,请在导入文件前,停止所有作业调度,否则调度中的作业会导致上传文件失败。
- 单击“上传文件”,选择准备好的数据文件。
可通过如下两种方式填写数据文件:
- (推荐使用) 通过“导出”功能,可将数据直接/或修改后批量导入系统。
- 通过“下载Excel模板”,将数据填写好,再导入至系统中。
- 分别配置数据连接、集群、目录、主题的映射资源信息。如不选择,默认使用原映射资源信息。
图11 配置映射资源信息
- 数据连接:选择导入后的数据连接类型。
- 集群:如果数据连接类型是DLI,需要选择对应的队列。
- 目录:选择导入后的质量作业存储目录。
- 主题:如果配置了消息通知,需要选择主题。
- 单击“导入”,将填好的Excel表格模板导入到系统。
- 单击“导入记录”页签,可查看对应的导入记录。
批量运行质量作业
系统支持批量运行质量作业,一次最多可批量运行200个质量作业。
- 选择“数据质量监控 > 质量作业”,选择要批量运行的质量作业。
- 单击“更多 > 批量运行”,即可完成质量作业的批量运行。
图12 批量运行
- 企业模式下,需要选择运行环境,系统支持可选择“开发环境”或“生产环境”。
- 单击“确定”。
批量调度质量作业
系统支持批量调度质量作业,一次最多可批量调度200个质量作业。
- 选择“数据质量监控 > 质量作业”,选择要批量调度的质量作业。
- 单击“更多 > 启动调度”,即可完成质量作业的批量调度。
图13 批量调度
批量停止调度质量作业
系统支持批量停止调度质量作业,一次最多可批量停止200个质量作业。
- 选择“数据质量监控 > 质量作业”,选择要批量停止调度的质量作业。
- 单击“更多 > 停止调度”,即可完成质量作业的批量停止调度。
图14 批量停止调度
批量停止运行质量作业
系统支持批量停止运行质量作业,一次最多可批量停止200个质量作业。
仅运行状态为“运行中”的质量作业可以停止。
- 选择“数据质量监控 > 运维管理”,选择要批量停止的质量作业。
- 单击“停止运行”,在弹出的“停止实例”界面中确认需要停止运行的质量作业实例,单击“是”,即可完成质量作业的批量停止运行。
图15 批量停止运行
图16 停止实例