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

简介: 快速学习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. 强规则还可能阻塞下游任务,如果下游有基线,请为后面的同学负责

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

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
11月前
|
SQL 分布式计算 DataWorks
活动实践 | DataWorks智能交互式数据开发与分析之旅
本指南介绍了如何使用阿里云平台进行大数据开发与分析。首先,在MaxCompute控制台创建项目并配置计算资源;接着,通过DataWorks控制台创建工作空间和独享资源组,并绑定工作空间。然后,创建个人开发环境,载入案例并新建Notebook实例。在Notebook中,通过SQL和Python Cell进行交互式开发和数据分析,体验智能助手Copilot的功能,如SQL改写、解释、生成注释及智能建表。最后,清理所有创建的资源,包括删除DataWorks资源、MaxCompute项目及网络配置,确保环境整洁。
|
数据采集 存储 DataWorks
DataWorks产品使用合集之如何查看数据质量中心(DQC)的规则执行记录
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
238 3
|
9月前
|
SQL 弹性计算 DataWorks
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
454 6
|
11月前
|
分布式计算 DataWorks 大数据
🚀DataWorks 深度实践与评测:数据治理新时代的全景体验。
在数字化转型中,企业不仅需要技术创新,更需完善的**数据管理和开发治理工具**。DataWorks 作为阿里云推出的一站式智能大数据平台,整合了阿里巴巴15年的大数据经验,提供从数据接入、开发、治理到资产管理的全流程解决方案。它支持湖仓一体架构,内置AI助手提升开发效率,并适用于金融、零售等多行业。本文将深入探讨 DataWorks 的功能、应用场景及性能表现,通过用户画像分析实践展示其强大潜力...
591 8
🚀DataWorks 深度实践与评测:数据治理新时代的全景体验。
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
SQL 数据采集 DataWorks
DataWorks产品最佳实践测评:用户画像分析实践
DataWorks作为阿里云提供的一款大数据开发治理平台,以其强大的数据处理能力和便捷的操作界面,在数据处理领域扮演着重要角色。本文将基于个人体验,对DataWorks产品进行最佳实践测评,重点探讨用户画像分析实践,并提出优化建议。
233 11
|
SQL 数据采集 DataWorks
基于DataWorks的多场景实践及数据开发Data Studio最新体验测评
DataWorks是阿里云推出的一站式智能大数据开发治理平台,自2009年发布以来,历经多次迭代,成为企业数字化转型的重要工具。本文通过多个实践案例,如公共电影票房数据预处理,展示了DataWorks如何帮助企业高效处理大数据,涵盖数据集成、ETL开发、数据分析及治理等全流程。最新版DataWorks引入了智能助手Copilot,进一步提升了用户体验和工作效率。
|
数据采集 DataWorks 搜索推荐
DataWorks产品最佳实践测评:用户画像分析实践
DataWorks产品最佳实践测评:用户画像分析实践
371 3
|
数据采集 DataWorks 监控
dataworks数据质量
dataworks数据质量
446 1
|
数据采集 SQL DataWorks
DataWorks产品使用合集之如何配置数据质量监控
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
186 0