且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

DataWorks数据质量模块介绍|学习笔记

更新时间:2022-09-02 15:39:13

开发者学堂课程【DataWorks 使用教程DataWorks 数据质量模块介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/107/detail/186


DataWorks 数据质量模块介绍


内容简介:

一.why 数据质量简介

二.数据质量监控过程

三.数据质量使用说明

四.***实践

五.FQA

 

 

Why数据质量简介

1970 年入网的淘宝用户:马总 6 岁操作 ARPANET 网?

.彩票订单为负值:淘宝从用户手中买彩票?

.一条物流单不同字段分别记录了北京和上海:中国直辖市合并?

.一个人旺旺登录日时长超过 24 小时:地球停转之日?

.交易基础表的金额字段从“元”改成“分”,数值扩大一百倍,导致下游阿里金融 的信贷授信模型给商家的授信金额同步扩大,风险资金敞口几个亿,风险贷款上百  万;

.马总曾经收到 6 个不同的 GMV 口径

 

无处不在的数据质量问题:

业务系统脏数据,系统交互,数据订正,数仓 BUG,业务变化,数据库变更,数据定义问题

 

影响:

影响上层决策应用,影响数据使用,产生附加费用,浪费时间

 

 

Why 数据质量 

数据质量,依托 DataWorks 平台,提供  全链路的数据质量方案,包括:数据探查、 数据对比,数据质量监控、SQLScan、智能  报警等能力;  

数据质量监控,全程监控数据加工流水线,根据质量规则及时发现问题,通过强弱 报警通知开发同学及时处理问题。

数据探查、数据对比、SQLScan 主要针  对开发阶段,帮助开发人员快速了解数据特 点和关系,匹配校验规则,上线前阻止质量  问题的发生。即将上线,敬请期待。

 

二、监控过程

1.数据由任务节点写到表中,在各个表中可以配置表的规则,当任务节点产出到表里面的时候,就会调用我们的数据质量监控规则,然后在数据产生的表里面之后,然后运行规则,看表里面的数据是不是符合质量的预期,当数据不符合预期时,就会根据规则的配置,发出不同的报警,对于强规则我们还会阻塞下游的运行。

表级,字段级自定义规则则根据支持根据业务属性自定义where过滤条件

自定义 SQL 支持完全自定义 SQL 逻辑(单行单列输出)

 

报警与阻塞:

1.强质量规则的红色报警阻塞下游任务节点,防止质量问题扩散/计算资源浪费

2.报警通过短信/邮件 /webhook 三种方式发送,webhook 遵循钉钉群机器人协议

在检测到数据表的问题后,根据规则的橙色以及红色阀值,分别发出报警,如果规则仅仅是触发了,橙色阈值后,就会发出短信或者邮件的报警,并且还会通过webhook 协议向机器人发起通告,发送报警,如果是触发了红色阀值,除了刚才橙色阈值的渠道来发送报警后

如果是强规则,就会阻塞任务下游节点的运行,主要是为了防止质量问题的扩散/避免下游计算节点有问题的计算资源浪费,除了离线质量流式质量也同样需要关注,实时数据和流式数据不一样,流式数据产生的速度不一样,一但产生就会被海量淹没在海洋中,排查困难,同时会实时反应在业务中,最终会影响离线数据质量。

 

流式数据质量同样需要关注

数据断流,十秒断流后进行监控

数据延迟,对管道中的业务时间自断,把系统的时钟进行比较,看差值是否过大

自定义,通过对 SQL 进行监控,满足各种多变的业务场景。

 

Why数据质量

离线数据

.37 种模板规则,覆盖表级、字段级共 15 种采样方式,10 种校验方式

. 自定义规则,支持 SQL 方式***定义

.强规则阻塞下游任务,弱规则提醒人工介入

 

实时数据

.数据断流、数据延迟两种监控模板

.自定义 Flink SQL,支持维表 join、多流 join 以及窗口函数等流计算特性

质量告警

.支持短信、邮件告警到个人

.支持 Webhook 方式与第三方系统对接,可直接发送到钉钉群

 

 

三.数据质量使用说明

1.选择一张 Maxcomputer 表

2.新建分区表达式

3.创建规则.强弱规则,强规则阻塞下游,弱规则则仅报警,比较方式

(1).数值型模板:固定值

波动型模板:绝对值/上升/下降比较方式

(2).数值型模板:=、>、<等

波动型模板:橙色阀值,红色阀值

 

模板类型

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

 

 

 

输入自定义 SQL

.只接收查询语句

.只能返回单行单列数据

.可使用分区表达式变量

.可关联其他表

.可使用 UDF

输入规则描述,将出现在报警信息中,

 

4.订阅信息

支持邮件,短信,钉钉群,三种不同方式,邮件短信发送人,钉钉群则是 webhook互接的方式来发送.

 

5.试跑

试跑的作用

.测试规则配置的正确性

.测试订阅发送渠道

.手动运行监控规则的一种手段

 

6.关键任务节点

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

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

 

7.任务查询和结果查看

触发规则的任务节点

规则执行时间

操作:详情:查看每一条规则的执行结果

规则:查看规则配置情况

日志:查看规则运行日志

数据分布:一键探查数据量,表行数

执行结果状态,如果是报警或阻塞要加倍注意.

 

实时流式数据

1.数据集成页面配置 Datahub topic

2.关联flink项目

3.配置规则

 

四、***实践

1.根据数据仓库或者集市的层次以及功能定位配置

 入口层/数据引入层/基础层

 .业务主外键是否唯一缺失

.周期性数据波动是否过大/特殊类(如日志等)  

.无周期性则判断数据是否大于固定值

 

数据清洗层/整合加工层

增加一些对清洗逻辑的监控

对于整合的数据判断其数据唯一性、重复性  

 

轻度/高度汇总层

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

 

维表层/事实表层

.主外键一致

.维度值增加/减少监控

 

 出口层/应用层/报表层

.逻辑主键 。

多表之间的平衡关联。

特定业务逻辑监控 DataWorks  mke data wors

 

 

2.***实践

常用规则

表级规则:

ODPS 表大小,1 天波动检测

ODPS 表大小,30 天波动检测

ODPS 表大小,7 天波动检测

SQL 任务表行数,1,7,30 天波动检测  使用较多,周期性检测

SQL 任务表行数,1 天波动检测  C 类使用较多,根据业务波动特性

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

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

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

SQL 任务表行数,7 天波动检测 B 类使用较多,根据业务波动特性

SQL 任务表行数,上 1 周期比较 B 类使用较多,根据业务波动特性  相比上一周期表大小不变

 

3.***实践

常用规则

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

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

字段平均值,1,7,30 天波动检测 字段最大值,1,7,30 天波动检测

字段最大值,上1周期比较 根据业务特性,如状态值,部署在最外层 字段最小值,1,7,30 天波动检测根据业务特性,如状态值,部署在最外层  

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

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

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

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

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

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

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

 

 

4.***实践

关于规则类型和比较方式

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

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

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

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

 

 

五、FAQ

问:如何才能使用数据质量?

答:数据质量模块已经对 DataWorksV2.0 用户开放公测,上海、杭州、深圳、北京、英国  马来西亚 6 个 region 的新用户可以直接使用。老用户还未升级到DataWorks V2.0 的,可以进  入钉钉群[数加 -DataWorks 交流 0 群](群号为11718465)申请开通。

 

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

答:对公共云用户,目前处于公测免费阶段,但是质量规则的运行会带来额外计算引擎的费用  (离线规则使用 MaxCompute,实时规则使用 Flink)。

 

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

答:离线自定义规则使用 MaxCompute SQL,实时自定义规则使用 FlinkSQL。目前只接受  查询语句,并限制为单行单列输出。

 

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

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

 

问:我的任务节点和表处于不同的工作空间中,如何配置?  

答:目前还不支持。研发小姐姐正在努力开发中,敬请期待。 DataWorks  med1 UO

 

 

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

对离线数据来说,强弱规则运行的时机不同: 弱规则优先级较低,且与下游任务并发执行,基本不影响基线产出  强规则优先级高,会在下游任务运行前执行,计入基线运行时间

强规则还可能阻塞下游任务,如果下游有基线,请为后面的同学负责。