混合云场景下大数据数据质量管理
本实践验证了在离线数据校验场景下,通过配置表数据质量规则,并关联规则到任务节点,当任务节点触发强规则后,规则会阻塞任务运行,从而避免脏数据影响扩大。
前提条件
已创建MaxCompute项目。
已创建DataWorks工作空间。
专有云企业版V3.14及以上。
使用场景
在离线数据校验场景下,数据质量能第一时间感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,自动拦截问题任务,有效阻断脏数据向下游蔓延。避免任务产出不符合预期的问题数据,影响正常使用和业务决策。同时也能显著降低问题处理的时间成本、避免任务重新运行带来的资源费用浪费。
方案概述
方案框架。
方案描述:任务节点运行后会输出数据表,针对输出表配置数据质量规格,当任务节点再次运行时会进行规则校验,匹配了规则后会触发告警或对任务进行阻塞。
方案流程。
创建项目、任务节点,并发布任务到生产环境。
配置表大小1天波动率规则。
任务运行2天后,修改表数据大小,模拟第三天任务数据和前2天有差异;
隔天查看发现任务被阻塞。
实践步骤
创建项目、任务节点,并发布任务到生产环境。
创建项目、任务节点,并进行测试。
登录Apsara Uni-manager运营控制台,选择产品>大数据>DataWorks,进入DataStudio数据开发页面,在页面中创建名为数据质量服务的业务流程,以及虚拟节点数据质量和ODPS SQL节点数据质量节点,具体如下图。
创建表,单击提交到开发环境发布到开发和生产环境,通过任务节点脚本对表进行数据插入。
配置虚拟节点任务。包括重跑属性、调度周期,以及根节点信息。
配置数据质量任务节点。
数据质量任务节点模拟每天插入10万行数据,配置如下:
insert overwrite table test_dataqualitypartition (dt='${key1}')
select transform('for i in `seq 1 10000`;do echo $i; done;') using 'sh' as (data)
from (select transform('for i in `seq 110`; do echo $i; done;') using 'sh' as (col) distribute by col);
发布任务到生产环境。
在DataStudio页面单击发布按钮,进入发布页面,单击全部打包发布,完成任务发布。
配置表大小1天波动率规则。
选择DataStudio页面左上方选择全部产品>数据质量,跳转进入数据质量页面。
在数据质量页面中选择监控规则,在页面中找到test_dataquality表,并单击配置监控规则进行规则配置。
在跳转页面中首先配置分区表达式,单击加号按钮。这里选择年月日格式。
然后选择创建规则进行规则配置,强弱选项选择强,意思当触发规则是阻塞任务继续运行。
选择页面上关联调度将规则关联到任务节点上。
任务运行2天后,修改表数据大小,模拟第三天任务数据和前2天有差异。
任务运行2天后查看每天表数据大小。
在左侧导航栏选择数据质量>我的订阅,单击表名操作列的上次结果,页面中选择查看历史结果,可以看到每天的采样结果。
修改任务节点生成数据量。
修改数据质量任务节点配置,模拟插入1000000行数据,配置如下:
insert overwrite table test_dataqualitypartition (dt='${key1}')
select transform('for i in `seq 1 10000`;do echo $i; done;') using 'sh' as (data)
from (select transform('for i in `seq 1100`; do echo $i; done;') using 'sh' as (col) distribute by col);
然后重新发布任务到生产环境。
隔天查看发现任务被阻塞。
在左侧导航栏中选择数据质量>任务查询,可以看到任务被阻塞。
详细结果如下图。
- 本页导读