当前位置:首页 > 职场之路

数据质量管理

数据质量管理是指对数据质量进行管理和控制,以确保数据质量符合特定用途和特定用户的需求和期望。

一、数据质量的定义

根据《DAMA》对数据质量的定义是:“数据质量是指数据在满足特定用途的过程中,以及在满足特定用户的需要和期望的过程中,所表现出来的适当性、准确性、完整性、一致性、可靠性和时效性等特征的度量。”这一定义强调了数据质量与特定用途和用户需求之间的紧密关系,并突出了数据质量的多维特征。

二、数据质量的多维特征

完整性:指数据是否完整、不缺失。完整性是数据质量的重要特征,数据的完整性也取决于数据的全生命周期管理。

一致性:指数据在不同的时间、地点、系统和应用中是否保持一致。数据一致性是确保数据准确和可靠的关键。

可靠性:指数据在存储、处理、传输和使用过程中是否能够保持正确、稳定、可靠的状态。

时效性:指数据在存储、处理、传输和使用过程中是否能够保持及时、实时的状态。时效性对于实时性要求高的应用场景尤为重要。

三、数据质量的评估

数据质量评估是对数据质量进行定量或定性的评估和分析,以确定数据质量的好坏程度。DAMA提出了一系列评估数据质量的方法和标准,包括数据质量度量、数据质量评估模型和数据质量评估标准等。

数据质量度量:通过数据质量指标(如适当性、准确性、完整性、一致性、可靠性和时效性)对数据进行定量的度量和分析。度量方法包括统计分析、数据挖掘、机器学习、数据可视化等。

数据质量评估模型:如数据质量成熟度模型、数据质量评估框架和数据质量评估流程等,帮助用户更好地评估和管理数据质量。

数据质量评估标准:作为数据质量评估的重要依据和参考,帮助用户制定和执行数据质量管理的规范。

四、数据质量管理的实现(一)工具介绍

ApacheDolphinScheduler()是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

数据质量是系统的其中一个模块。数据质量任务是用于检查数据在集成、处理过程中的数据准确性。本版本的数据质量任务包括单表检查、单表自定义SQL检查、多表准确性以及两表值比对。

(二)数据质量任务的执行逻辑

用户在界面定义任务,用户输入值保存在TaskParam中运行任务时,Master会解析TaskParam,封装DataQualityTask所需要的参数下发至Worker。Worker运行数据质量任务,数据质量任务在运行结束之后将统计结果写入到指定的存储引擎中,当前数据质量任务结果存储在dolphinscheduler的t_ds_dq_execute_result表中Worker发送任务结果给Master,Master收到TaskResponse之后会判断任务类型是否为DataQualityTask,如果是的话会根据taskInstanceId从t_ds_dq_execute_result中读取相应的结果,然后根据用户配置好的检查方式,操作符和阈值进行结果判断,如果结果为失败的话,会根据用户配置好的的失败策略进行相应的操作,告警或者中断

(三)检查逻辑详解

校验公式:[校验方式][操作符][阈值],如果结果为真,则表明数据不符合期望,执行失败策略

校验方式:

[Expected-Actual][期望值-实际值]

[Actual-Expected][实际值-期望值]

[Actual/Expected][实际值/期望值]x100%

[(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100%

操作符:=、、=、、=、!=

期望值类型:固定值、日均值、周均值、月均值、最近7天均值、最近30天均值、源表总行数、目标表总行数

例子

校验方式为:[Actual-Expected][实际值-期望值]

[操作符]:

[阈值]:0

期望值类型:固定值=9。

假设实际值为10,操作符为,期望值为9,那么结果10-90为真,那就意味列为空的行数据已经超过阈值,任务被判定为失败

(四)单表检查之空值检查

空值检查的目标是检查出指定列为空的行数,可将为空的行数与总行数或者指定阈值进行比较,如果大于某个阈值则判定为失败

计算指定列为空的SQL语句如下:SELECTCOUNT(*)ASmissFROM${src_table}WHERE(${src_field}isnullor${src_field}='')AND(${src_filter})

计算表总行数的SQL如下:SELECTCOUNT(*)AStotalFROM${src_table}WHERE(${src_filter})

界面操作指南

源数据类型:选择MySQL、PostgreSQL等

源数据源:源数据类型下对应的数据源

源数据表:下拉选择验证数据所在表

源过滤条件:如标题,统计表总行数的时候也会用到,选填

源表检查列:下拉选择检查列名

校验方式:

[Expected-Actual][期望值-实际值]

[Actual-Expected][实际值-期望值]

[Actual/Expected][实际值/期望值]x100%

[(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100%

校验操作符:=,、=、、=、!=

阈值:公式中用于比较的值

失败策略

告警:数据质量任务失败了,DolphinScheduler任务结果为成功,发送告警

阻断:数据质量任务失败了,DolphinScheduler任务结果为失败,发送告警

期望值类型:在下拉菜单中选择所要的类型

(五)其它数据质量检查:单表检查之及时性检查、单表检查之字段长度校验、单表检查之唯一性校验、单表检查之正则表达式校验、单表检查之枚举值校验、单表检查之表行数校验、单表检查之自定义SQL检查、多表检查之准确性检查、两表检查之值比对

具体请查阅:

分享到: