网站首页 > 开源技术 正文
数据质量管理是指对数据质量进行管理和控制,以确保数据质量符合特定用途和特定用户的需求和期望。
一、数据质量的定义
根据《DAMA》对数据质量的定义是:“数据质量是指数据在满足特定用途的过程中,以及在满足特定用户的需要和期望的过程中,所表现出来的适当性、准确性、完整性、一致性、可靠性和时效性等特征的度量。”这一定义强调了数据质量与特定用途和用户需求之间的紧密关系,并突出了数据质量的多维特征。
二、数据质量的多维特征
- 适当性:指数据是否符合特定用途和特定用户的需求和期望。适当性是数据质量的首要特征,它取决于数据的来源、采集、处理、存储和使用等多个环节。
- 准确性:指数据是否与实际情况相符合。数据的准确性是数据质量的关键特征之一,它同样受到数据来源、采集、处理、存储和使用等因素的影响。
- 完整性:指数据是否完整、不缺失。完整性是数据质量的重要特征,数据的完整性也取决于数据的全生命周期管理。
- 一致性:指数据在不同的时间、地点、系统和应用中是否保持一致。数据一致性是确保数据准确和可靠的关键。
- 可靠性:指数据在存储、处理、传输和使用过程中是否能够保持正确、稳定、可靠的状态。
- 时效性:指数据在存储、处理、传输和使用过程中是否能够保持及时、实时的状态。时效性对于实时性要求高的应用场景尤为重要。
三、数据质量的评估
数据质量评估是对数据质量进行定量或定性的评估和分析,以确定数据质量的好坏程度。DAMA提出了一系列评估数据质量的方法和标准,包括数据质量度量、数据质量评估模型和数据质量评估标准等。
- 数据质量度量:通过数据质量指标(如适当性、准确性、完整性、一致性、可靠性和时效性)对数据进行定量的度量和分析。度量方法包括统计分析、数据挖掘、机器学习、数据可视化等。
- 数据质量评估模型:如数据质量成熟度模型、数据质量评估框架和数据质量评估流程等,帮助用户更好地评估和管理数据质量。
- 数据质量评估标准:作为数据质量评估的重要依据和参考,帮助用户制定和执行数据质量管理的规范。
四、数据质量管理的实现
(一)工具介绍
Apache DolphinScheduler (https://dolphinscheduler.apache.org/)是一个分布式易扩展的可视化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 -9 > 0 为真,那就意味列为空的行数据已经超过阈值,任务被判定为失败
(四)单表检查之空值检查
空值检查的目标是检查出指定列为空的行数,可将为空的行数与总行数或者指定阈值进行比较,如果大于某个阈值则判定为失败
- 计算指定列为空的SQL语句如下:SELECT COUNT(*) AS miss FROM ${src_table} WHERE (${src_field} is null or ${src_field} = '') AND (${src_filter})
- 计算表总行数的SQL如下:SELECT COUNT(*) AS total FROM ${src_table} WHERE (${src_filter})
界面操作指南
- 源数据类型:选择MySQL、PostgreSQL等
- 源数据源:源数据类型下对应的数据源
- 源数据表:下拉选择验证数据所在表
- 源过滤条件:如标题,统计表总行数的时候也会用到,选填
- 源表检查列:下拉选择检查列名
- 校验方式:
- [Expected-Actual][期望值-实际值]
- [Actual-Expected][实际值-期望值]
- [Actual/Expected][实际值/期望值]x100%
- [(Expected-Actual)/Expected][(期望值-实际值)/期望值]x100%
- 校验操作符:=,>、>=、<、<=、!=
- 阈值:公式中用于比较的值
- 失败策略
- 告警:数据质量任务失败了,DolphinScheduler任务结果为成功,发送告警
- 阻断:数据质量任务失败了,DolphinScheduler任务结果为失败,发送告警
- 期望值类型:在下拉菜单中选择所要的类型
(五)其它数据质量检查:单表检查之及时性检查、单表检查之字段长度校验、单表检查之唯一性校验、单表检查之正则表达式校验、单表检查之枚举值校验、单表检查之表行数校验、单表检查之自定义SQL检查、多表检查之准确性检查、两表检查之值比对
具体请查阅:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/guide/data-quality
猜你喜欢
- 2024-09-12 盘点 12 月份爆火的 GitHub 项目(github排行榜)
- 2024-09-12 DolphinScheduler海豚调度器删除历史日志问题
- 2024-09-12 dolphin scheduler多数据库存储(hibernate多数据库支持)
- 2024-09-12 海豚DolphinScheduler系统调度操作分析
- 2024-09-12 源码解析-- 如何做到不同Task的日志输出到不同的日志文件
- 2024-09-12 运维实战:DolphinScheduler 生产环境升级
- 2024-09-12 任务调度工具(任务调度工具怎么用)
- 2024-09-12 dolphinscheduler集成数据质量任务
- 2024-09-12 源码解析--海豚调度MasterServer流程执行过程分析
- 2024-09-12 大数据组件部署——dolphinscheduler集群部署
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)