编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

数据质量管理(数据质量管理平台目前支持通过扫描)

wxchong 2024-09-12 22:02:48 开源技术 10 ℃ 0 评论

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

一、数据质量的定义

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

二、数据质量的多维特征

  1. 适当性:指数据是否符合特定用途和特定用户的需求和期望。适当性是数据质量的首要特征,它取决于数据的来源、采集、处理、存储和使用等多个环节。
  2. 准确性:指数据是否与实际情况相符合。数据的准确性是数据质量的关键特征之一,它同样受到数据来源、采集、处理、存储和使用等因素的影响。
  3. 完整性:指数据是否完整、不缺失。完整性是数据质量的重要特征,数据的完整性也取决于数据的全生命周期管理。
  4. 一致性:指数据在不同的时间、地点、系统和应用中是否保持一致。数据一致性是确保数据准确和可靠的关键。
  5. 可靠性:指数据在存储、处理、传输和使用过程中是否能够保持正确、稳定、可靠的状态。
  6. 时效性:指数据在存储、处理、传输和使用过程中是否能够保持及时、实时的状态。时效性对于实时性要求高的应用场景尤为重要。

三、数据质量的评估

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

  1. 数据质量度量:通过数据质量指标(如适当性、准确性、完整性、一致性、可靠性和时效性)对数据进行定量的度量和分析。度量方法包括统计分析、数据挖掘、机器学习、数据可视化等。
  2. 数据质量评估模型:如数据质量成熟度模型、数据质量评估框架和数据质量评估流程等,帮助用户更好地评估和管理数据质量。
  3. 数据质量评估标准:作为数据质量评估的重要依据和参考,帮助用户制定和执行数据质量管理的规范。

四、数据质量管理的实现

(一)工具介绍

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表