说明:
本文将通过一个完整的配置过程,带您快速了解数据质量模块的核心能力。
准备工作
1. 购买开通 WeData 产品,详情请参见 WeData 购买指南。
2. 在 WeData 控制台,创建项目并绑定 EMR、DLC、TCHouse-P、TCHouse-D、Doris等数据源(本文以 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 表)进行监控。 字段级,可对字段是否为空,是否重复,平均值、最大值、最小值等进行监控。 |
选择模板 | 选择表行数。 |
检测范围 | 选择条件扫描。 填入以下 where 条件:
说明: 此处一般填写分区字段,避免每次质量任务都进行全表扫描,对计算资源造成浪费。 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 已经执行完成,结果不符合预期(达到了检测规则的触发条件,此时会发送任务告警信息)。