文档

混合云场景下大数据数据质量管理

更新时间:
一键部署

本实践验证了在离线数据校验场景下,通过配置表数据质量规则,并关联规则到任务节点,当任务节点触发强规则后,规则会阻塞任务运行,从而避免脏数据影响扩大。

前提条件

  1. 已创建MaxCompute项目。

  2. 已创建DataWorks工作空间。

  3. 专有云企业版V3.14及以上。

使用场景

在离线数据校验场景下,数据质量能第一时间感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,自动拦截问题任务,有效阻断脏数据向下游蔓延。避免任务产出不符合预期的问题数据,影响正常使用和业务决策。同时也能显著降低问题处理的时间成本、避免任务重新运行带来的资源费用浪费。

方案概述

  1. 方案框架。0

    方案描述:任务节点运行后会输出数据表,针对输出表配置数据质量规格,当任务节点再次运行时会进行规则校验,匹配了规则后会触发告警或对任务进行阻塞。

  2. 方案流程。

    • 创建项目、任务节点,并发布任务到生产环境。

    • 配置表大小1天波动率规则。

    • 任务运行2天后,修改表数据大小,模拟第三天任务数据和前2天有差异;

    • 隔天查看发现任务被阻塞。

实践步骤

  1. 创建项目、任务节点,并发布任务到生产环境。

    1. 创建项目、任务节点,并进行测试。

      1. 登录Apsara Uni-manager运营控制台,选择产品>大数据>DataWorks,进入DataStudio数据开发页面,在页面中创建名为数据质量服务的业务流程,以及虚拟节点数据质量和ODPS SQL节点数据质量节点,具体如下图。11

      2. 创建表,单击提交到开发环境发布到开发和生产环境,通过任务节点脚本对表进行数据插入。2

      3. 配置虚拟节点任务。包括重跑属性、调度周期,以及根节点信息。3

      4. 配置数据质量任务节点。

        数据质量任务节点模拟每天插入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);45

    2. 发布任务到生产环境。

      在DataStudio页面单击发布按钮,进入发布页面,单击全部打包发布,完成任务发布。67

  2. 配置表大小1天波动率规则。

    1. 选择DataStudio页面左上方选择全部产品>数据质量,跳转进入数据质量页面。8

    2. 在数据质量页面中选择监控规则,在页面中找到test_dataquality表,并单击配置监控规则进行规则配置。9

    3. 在跳转页面中首先配置分区表达式,单击加号按钮。这里选择年月日格式。10

    4. 然后选择创建规则进行规则配置,强弱选项选择,意思当触发规则是阻塞任务继续运行。1

    5. 选择页面上关联调度将规则关联到任务节点上。12

  3. 任务运行2天后,修改表数据大小,模拟第三天任务数据和前2天有差异。

    1. 任务运行2天后查看每天表数据大小。

      1. 在左侧导航栏选择数据质量>我的订阅,单击表名操作列的上次结果,页面中选择查看历史结果,可以看到每天的采样结果。11415

    2. 修改任务节点生成数据量。

      1. 修改数据质量任务节点配置,模拟插入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);16

      2. 然后重新发布任务到生产环境。17

  4. 隔天查看发现任务被阻塞。

    1. 在左侧导航栏中选择数据质量>任务查询,可以看到任务被阻塞。1

    2. 详细结果如下图。19

  • 本页导读
文档反馈