数据质量入门

最近更新时间:2024-05-22 11:53:21

我的收藏
说明:
本文将通过一个完整的配置过程,带您快速了解数据质量模块的核心能力。

准备工作

1. 购买开通 WeData 产品,详情请参见 WeData 购买指南
2. 在 WeData 控制台,创建项目并绑定 EMR 或 DLC 数据源(本文以 EMR 为例),详情请参见 WeData 项目管理
3. 在数据开发模块,创建一个数据库和数据表(本文以 EMR 为例),详情请参见 WeData 数据管理
4. 在数据开发模块,创建一个数据开发任务,详情请参见 WeData 任务开发介绍
说明:
请在创建项目时,购买并绑定 EMR 引擎(绑定时请启用元数据扫描),并绑定调度资源。

数据表准备

1. 在 emr-hive 数据源中创建数据库:emall,并创建数据表:dq_test 。
2. 在表中添加以下字段:
字段名
中文名
列类型
是否分区
pt_date
分区字段
string
id
id
int
name
姓名
string
gender
性别
int
操作截图:




数据开发任务准备

1. 数据开发 > 编排空间界面,单击创建工作流
2. 在工作流中创建任务节点,任务类型:Hive SQL。
Hive SQL 如下:
INSERT INTO TABLE emall.dq_test PARTITION (pt_date = '2024-05-01')
VALUES ('1', '张三', '1');

配置数据质量任务

配置流程





创建质量任务

步骤一:进入创建页面

进入数据质量 > 数据监控 > EMR 界面,单击单表新增规则,开始新增一个质量规则。




步骤二:选择监控对象

进入单表新增规则界面,依次选择数据源、数据库、监控表,单击新增监控规则




步骤三:新增监控规则

在弹框新增监控规则页面补充以下信息,单击保存



解释说明:
元素
说明
规则类型
选择系统模板
此处可选择系统模板、自定义模板、自定义 SQL:
系统模板:WeData 已经内置了56个规则模板,可免费使用。各个模板的详细介绍说明可参考系统模板说明
自定义模板:可在规则模板菜单添加适用自己业务的规则,方便复用,详细操作指导可参考自定义模板说明
自定义 SQL:可直接填写 SQL 语句作为检测规则,详细操作指导可参考新增质量规则
监控对象
选择表(table)
监控对象可分为:表级和字段级:
表级,可对表行数,表大小(仅支持 Hive 表)进行监控。
字段级,可对字段是否为空,是否重复,平均值、最大值、最小值等进行监控。
选择模板
选择表行数
WeData 已经内置了56个规则模板,可免费使用。各个模板的详细介绍说明可参考系统模板说明
检测范围
选择条件扫描
填入以下 where 条件:
pt_date='${yyyy-MM-dd-1d}'
说明:
此处一般填写分区字段,避免每次质量任务都进行全表扫描,对计算资源造成浪费。
SQL 中 ${yyyy-MM-dd-1d} 是日期变量,代表执行日期前一天,在质量任务执行时会被替换为具体的日期。
例如:当质量任务在2024 - 05 - 02 00:00:00执行时,${yyyy-MM-dd-1d} 会被替换为2024 - 05 - 01。
具体时间变量的替换逻辑可参考 时间参数说明
触发条件
比较符:选择小于。
比较值:填入 1。
表行数小于1,结合检测范围填写的时间变量,即表示:当昨天没有新增数据时,触发告警。
说明:
此处填写的触发条件为异常值,即:触发告警的条件。
触发等级
选择
触发等级可分为:高、中、低。
高:当触发告警时,立即阻断下游任务执行(仅关联生产任务时有效)。
中:仅触发告警。
低:不触发告警,仅结果展示异常。

步骤四:设置执行策略

单击批量设置执行策略后,进入执行策略设置页面,批量设置执行策略后,单击保存。您可以参考下表完成配置。



解释说明:
元素
说明
执行方式
选择关联生产调度
此处可选择关联生产调度和离线周期检测:
关联生产调度:即关联调度。将质量任务与生产任务(数据同步任务或者数据开发任务)进行关联,当生产任务运行结束后,插入运行质量规则任务。如发现异常,会第一时间通知处理人进行处理,并根据任务级别阻塞下游任务执行避免问题数据扩展。
说明:
同一个质量检测任务可以关联多个生产任务;同一个生产任务也可以关联多个质量检测任务。
离线周期检测:即独立调度。对选定的数据库表、核心业务字段按天、按小时、按分钟等自定义频率设置周期性质量检测。质量任务会按设定的周期定时执行,如发现异常,会第一时间通知订阅人。
执行引擎
选择 Hive
此处可选择 Hive 和 Spark,与购买的 EMR 资源有关,一般情况下 Hive 表可直接选择 Hive 引擎。
计算资源
选择 default
此处可选择 EMR 集群中的资源组,一般情况下可直接选择 default。
执行资源
此处的执行资源即项目已经绑定的调度资源组。
选择任务
选择准备工作中创建的 Hive SQL 任务。

步骤五:设置订阅

当质量检测任务的运行结果符合触发条件时(即结果非预期,检测结果为失败),以何种方式发送通知,通知给谁。
进入订阅设置界面,勾选订阅方式,设置接收人,单击保存即可。




步骤六:生成规则并查看详情

1. 进入单表新增规则界面,单击生成规则,必须单击生成规则,才会生成质量检测规则。
2. 您可以在界面右上角,单击详情,即可进入规则列表。




步骤七:试运行

1. 进入到表维度的规则列表,单击试运行
2. 修改调度时间,并单击开始试运行,试运行结束后,您可单击点击查看运行结果
说明:
由于插入数据时,填写的数据分区为2024 - 05 - 01,此处可填写2024 - 05 - 02。





步骤八:查看试运行结果

1. 进入执行实例与结果页面后,可单击左侧下拉三角形,展开规则明细。
2. 单击某一条规则的执行历史,查看历史运行结果。




步骤九:开启监控

如果试运行结果没有问题,可返回表维度的质量规则列表,在监控状态列开启监控。
说明:
只有启用状态的监控规则,才会自动运行。




查看任务执行结果

当质量任务运行结束时,如果检测结果为异常,系统会自动发送告警,并对触发等级为高的任务阻塞下游任务。
对于库表负责人和数据开发工程师需要及时排查异常,并解决问题。
1. 数据质量 > 运维管理 > 执行实例与结果页面,依次选择数据源、数据库,可查看任务的运行结果。
2. 在此页面可查看任务检测状态,并通过左侧下拉三角展开查看每条规则的结果和日志。
说明:
检测状态分为两大类:
任务过程状态:
下发中:检测任务已经生成,但是正在排队下发,可能由于调度资源组紧张导致下发时间比较长。
链路失败:任务无法下发到计算资源(例如 EMR),可能由于调度资源组与计算资源网络不通原因导致。
SQL 检测状态:
检测中:SQL 已经在计算资源(例如 EMR)上运行,可能由于计算资源紧张导致检测时间比较长。
正常:SQL 已经执行完成,结果符合预期(未达到检测规则的触发条件)。
异常:SQL 已经执行完成,结果不符合预期(达到了检测规则的触发条件,此时会发送任务告警信息)。