7.DataWorks 数据质量介绍及实践(二)|学习笔记

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 快速学习7.DataWorks 数据质量介绍及实践

开发者学堂课程【DataWorks 一站式大数据开发治理平台精品课程:7.DataWorks 数据质量介绍及实践】与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/81/detail/1233


7.DataWorks 数据质量介绍及实践(二)

二、数据质量使用说明

1、离线质量校验

(1)选择一张 MaxCompute 表

(2)新建分区表达式

离线质量校验的使用很简单,整个都是在图形化的界面中,以 MaxCompute 的实时数据质量监控为例同时还支持 EMR- HiveHologresADB-PG 一共4种离线的计算存储引擎,以 MaxCompute 表为例,首先要选择一张表比如选择ods_user. info _d这张表,选择这张表后,要定义一个特殊的对象值,叫做分区表达式,因为在离线的系统中数据都是会分写到不同的分区中的,分区大部分的情况下是和时间或者业务日期有关联,最新的数据一般只会写到最新的分区中所以定义分区表达式的目的就是为限定质量问题扫描的范围,因为实际每天只要扫描最新的分区就够了。

作用:定位最新数据,避免全表扫描

非分区表:NOTAPARTITIONTABLE

分区表:分区名=分区值

多级分区表:必须配置到最后级分区

1级分区名=分区值/2级分区名=分区值/N级分区名=分区值

(3)创建规则

强弱规则

强规则阻塞下游弱规则仅报警

动态阈值

是否由系统判断异常指标

比较方式1

数值型模板:固定值波动型模板:绝对值/上升/下降

比较方式2

数值型模板: =、>、<等波动型模板:橙色阈值、红色阈值

规则字段

表级or字段级    ,如果是字段级规则还可以针对是哪一个字段的规则,系统会自动判断,是字符串类型还是数值型的字段,给出可用的模版。

模板类型

包含采样方式、校验方式根据字段类型不同而不同

另外一方面如果模板规则不符合要求,可以设置自定义的规则,自定义的规则使用起也很简单,在刚才创建规则的窗口中,选择自定义规则,就可以在窗口中写入自己的sqlsql本身是会有一定的要求的,符合要求的sql都可以被纳入到自定义规则的监控中。

(4)关于动态阈值

这里着重强调两个功能,动态阈值的功能,如果在配置规则的界面中,把动态阈值的选项选成是就意味着要配置动态阈值方式的规则,一旦在选项中选是,会发现下面的配置就变得简单多,就不需要有复杂的阈值的设定。取而代之的算法参考样本量的配置,只需要指定让系统关注多少天之内的样本量,基于样本量,通过平滑的算法判断最新的指标点是否在预期的区域,是否在预期的区间范围内,如果在区间范围内就认为是正常的指标,如果是在突破预测的上界和下界,就认为质量问题是存在的。

image.png

右下角的这张图,基于历史上的数据,系统会自动判定上界和下界,如果最新的数据落在上下界内,系统就会认为是可以被接受的。如果突破上下界,系统就认为是存在数据质量的问题,可以看到这张图上历史上的值,红色的小圆圈标示出的都是系统认为有异常的点,使用起会比单独的配置阈值要方便的多

(5)自定义规则进阶:规则模版

另外强调的功能是自定义的模板它本身是自定义规则的进阶用法,通过定义一段sql进行复杂业务场景的校验,如果这张表如果碰巧这种需要通过用自定义规则校验的表比较多,配置起工作量就会比较大,而且也容易出现sql代码管理起来很复杂的问题,或者由于业务上的变化,sql脚本本身需要有修改,如果它应用的表特别多,改动的工作量也会非常的大,这时候就可以用到自定义规则模板库的功能,它本质上是可以把自定义规则固化成为模板,这样在使用规则时,就可以像使用内置模板规则一样的用,可以在数据质量的界面中看到有一个规则模板库,进入到规则模板库中后,会有模板库的目录数,进入到具体的目录数中后,可以像配置自定义sql规则一样的配置模板,唯一不一样的可以用${table_ name}指代表,同理$[yyyymmdd- 1]]可以用指代分区表达式,和自定义sql规则的用法一样,在创建好自定义模板规则后,在使用模板规则时,可以在规则源中选择的规则模板,选择到对应的目录,选择所配置的模板可以看到,配置的模板显示在这里,并且它是不能改的,方便规则代码统一的管理。

(6)配置订阅

无论是内置的模板规则,还是自定义的模板规则,或者是自定义的sql规则配置完成后,把扫描的结果通知出,所以需要配置订阅人,在dataworks的界面上有订阅管理的按钮点击按钮后可以配置不同的订阅方式,可以看到有短信的方式,有邮件的方式或者钉钉群的方式。其次会有试跑的功能,点击以后就会立刻运行配置的规则,用校验规则配置的正确性,同时也是一种规则校验的一种手段,就不用等到调度任务运行,才能触发规则,可以通过手动试跑的方式运行规则。

(7)关联任务节点

方式一:数据质量界面关联

方式二:运维中心界面关联

(8)任务查询和结果查看

无论是手动运行的还是调度触发的质量规则,的任务结果,教研的结果都可以在任务查询菜单中看到

2、实施质量校验

(1)数据集成页面配置 DataHub Topic

(2)关联Flink项目

(3)配置规则

3、自定义质量报告

  1. 查看方式:在线预览、邮件发送
  2. 监控对象总数
  3. 规则总数
  4. 覆盖率
  5. 报警趋势
  6. 阻塞趋势

也可以选择有指标不显示在报表上,只显示所关注的内容。


三、数据质量最佳实践

1、根据数据仓库/集市的层次及功能定位配置

(1)入口层/数据引入层/基础层

  1. 业务主外键是否唯一缺失
  2. 周期性数据波动是否过大/特殊类(如日志等)
  3. 无周期性则判断数据是否大于固定值

(2)数据清洗层/整合加工层

  1. 增加一些对清洗逻辑的监控
  2. 对于整合的数据判断其数据唯一性、重复性

(3)轻度/高度汇总层

根据汇总逻辑做平衡值监控

(4)维表层/事实表层

  1. 主外键一致
  2. 维度值增加/减少监控

(5)出口层/应用层/报表层

  1. 逻辑主键
  2. 多表之间的平衡关联
  3. 特定业务逻辑监控

2、常用规则

表级规则:

(1)MaxCompute表大小, 1天波动检测

(2)MaxCompute表大小, 30天波动检测

(3)MaxCompute表大小, 7天波动检测

(4)SQL任务表行数,1,7,30天波动检测

使用较多,周期性检测

5SQL任务表行数,1天波动检测

C类使用较多,根据业务波动特性

(6)SQL任务表行数,30天平均值波动检测

(7)SQL任务表行数,30天波动检测(8)SQL任务表行数,7天平均值波动检测

(9)SQL任务表行数,7天波动检测

B类使用较多根据业务波动特性

(10SQL任务表行数上1周期比较B类使用较多根据业务波动特性

(11相比上一周期表大小不变

经过统计,表值的规则中表行数和表大小这两种规则用的是比较多的,主要是用监控某些分区是否为空,或者会不会有突变的数据猛增的这种情况。

(12字段唯一值个数期望值校验如站点、渠道、类目等可以使用

(13字段唯一值, 1,7,30天波动检测

(14字段平均值, 1,7,30天波动检测

(15字段最大值, 1,7,30天波动检测

(16字段最大值,上1周期比较根据业务特性,如状态值,部署在最外层

(17字段最小值, 1,7,30天波动检测根据业务特性,如状态值,部署在最外层

(18字段最小值,上1周期比较根据业务特性,部署在最外层

(19字段汇总值, 1,7,30天波动检测B、C类使用较多,如交易总量, flag标签等

(20字段汇总值,上1周期比较B、C类使用较多,如交易总量, flag标签等

21字段空值个数使用较多,常与重复值个数联合使用作为主键监控

(22字段空值数/行数(空值率)

(23字段重复值个数使用较多, 常与空值个数联合使用作为主键监控

(24字段重复值个数/总行数

(25离散值监控(分组个数)使用较多,如男女等维度值监控

(26离散值监控(分组个数波动)使用较多,如男女分别的数量值监控

(27离散值监控(状态值)

(28离散值监控(状态值及状态值个数波动)

字段型的规则中,像以上所罗列的规则是比较多的。跟之前面不同的数仓分层中所用到的常用规则是一致的,比如字段唯一值的个数,可以在维度表或者是事实表中可以用到,可以监控维度的数量是否有异常的变化,或者字段空值和重复值的个数,可以做主外键是否有缺失的监控。

3、关于规则类型和比较方式

(1)强弱规则:脏数据不能流入下游则强,其他则弱,弱规则不会阻塞任务。

(2)趋势:上升、下降、绝对值、不变,按业务需要设置

(3)橙色阈值:强弱规则的橙色报警均不会阻塞下游,必须小于红色阀值,精确到百分比小数点后两位

(4)红色阈值:强规则的红色报警会触发阻塞,必须大于橙色阀值,精确到百分比小数点后两位

规则的强弱需要合理的选择它的强弱性。如果认为脏数据是比较关键的脏数不希望投入到下游的表中,这种规则是需要把它设置成强规则,其他尽可能把它设置成弱,为什么尽可能设置成弱?因为关系到系统资源的成本,以及强规则会用到maxcompute 或者 hologres 的资源是比较多的,并且它会阻塞最终任务的产出,它会影响最终数据的时效性。所以尽可能的使用弱,在不得已的情况下,可以使用强规则,波动率的检测的趋势有上升下降和绝对值可以根据业务的需要设置。另外橙色阈值和红色阈值,是监控阈值的两档,橙色阈值是不会阻塞到下游任务,如果是红色阈值,才会触发阻塞下游链路的动作,无论是橙色阈值还是红色阈值,都要精确到百分比小数点的后两位。

4、问题

(1)问:数据质量模块是否收费?

答:对公共云用户,按照质量规则实例运行数量计费,其中部分功能仅在DataWorks企业版中开启。详见https://help.aliyun.com/document detail/118793.html弱规则优先级较低,且与下游任务并发执行,基本不影响基线产出数据质量本身模块是可以在基础版和标准版的dataworks中可以用,但是质量规则按实例的运行数量会收费,其中还有一些功能,比如动态阈值的功能,还有质量报表的功能,这些是指在dataworks的企业版中才可以用到的。详细的实力运营数量计费的标准和功能点的版本的划分,可以在dataworks的在线帮助文档中看到。

(2)问:自定义规则使用怎样的SQL语法?

答:离线自定义规则使用MaxCompute SQL ,实时自定义规则使用Blink SQL。目前只接受查询语句,也就是dql并限制为单行单列输出。只有单行单列的输出,校验才会正确的判断是否有数据质量的问题。

(3)问:收到了数据质量报警,怎样才能快速定位触发的业务流程节点?

答:在数据质量-任务查询界面,找到报警对应的节点ID ,至运维中心中查询即可。

(4)问:数据质量与智能监控一起使用,需要特别注意什么?

答:对离线数据来说,强弱规则运行的时机不同:

  1. 强规则优先级高,会在下游任务运行前执行,计入基线运行时间
  2. 强规则还可能阻塞下游任务,如果下游有基线,请为后面的同学负责

运维中心的智能监控是通过业务基线的方式监控最后数据产出的时效性,能是数据质量的强规则是会影响数据产出的效性,所以当使用到离线数据的强规则时,就要尤其关注对智能监控规则的影响。如果弱规则它的优先级是低的,与下游任务是并发执行是不会影响智能监控基线的产出时间。但是如果是强规则,并且会阻塞下游任务时,就有可能会影响到下游的任务。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
4月前
|
数据采集 存储 DataWorks
DataWorks产品使用合集之如何查看数据质量中心(DQC)的规则执行记录
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
数据采集 DataWorks 监控
dataworks数据质量
dataworks数据质量
133 1
|
4月前
|
数据采集 SQL DataWorks
DataWorks产品使用合集之如何配置数据质量监控
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何配置周期任务(如工作流任务或调度任务)依赖于数据质量规则校验结果
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
85 0
|
6月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据质量检测出现校验异常一般是什么造成的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
31 0
|
6月前
|
数据采集 DataWorks 数据挖掘
DataWorks操作报错合集之出现报错数据质量校验不通过,但任务没有设置DQC校验,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
数据采集 SQL DataWorks
DataWorks产品使用合集之如何使用UDF(用户自定义函数)来提升数据质量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks Kubernetes 大数据
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
|
4月前
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现分钟级调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 DataWorks 监控
DataWorks产品使用合集之如何自定义UDTF
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章

  • 1
    DataWorks操作报错合集之DataWorks任务异常 报错: GET_GROUP_SLOT_EXCEPTION 该怎么处理
    109
  • 2
    DataWorks操作报错合集之DataWorksUDF 报错:evaluate for user defined function xxx cannot be loaded from any resources,该怎么处理
    108
  • 3
    DataWorks操作报错合集之在DataWorks中,任务流在调度时间到达时停止运行,是什么原因导致的
    106
  • 4
    DataWorks操作报错合集之DataWorks ODPS数据同步后,timesramp遇到时区问题,解决方法是什么
    92
  • 5
    DataWorks操作报错合集之DataWorks配置参数在开发环境进行调度,参数解析不出来,收到了 "Table does not exist" 的错误,该怎么处理
    93
  • 6
    DataWorks操作报错合集之DataWorks中udf开发完后,本地和在MaxCompute的工作区可以执行函数查询,但是在datawork里报错FAILED: ODPS-0130071:[2,5],是什么原因
    103
  • 7
    DataWorks操作报错合集之DataWorks提交失败: 提交节点的源码内容到TSP(代码库)失败:"skynet_packageid is null,该怎么解决
    116
  • 8
    DataWorks操作报错合集之DataWorks在同步mysql时报错Code:[Framework-02],mysql里面有个json类型字段,是什么原因导致的
    151
  • 9
    DataWorks操作报错合集之DataWorks集成实例绑定到同一个vpc下面,也添加了RDS的IP白名单报错:数据源配置有误,请检查,该怎么处理
    88
  • 10
    DataWorks操作报错合集之在 DataWorks 中运行了一个 Hologres 表的任务并完成了执行,但是在 Hologres 表中没有看到数据,该怎么解决
    126