数仓之数据质量及Apache Griffin简介

概述

垃圾进,垃圾出(garbage in,garbage out)。数据质量定义:

数据质量可能不是数据治理的最核心部分,但可能会成为数据治理落地的最大障碍。

评估

一般从以下6个方面评估数据质量:

  • 完整性:数据的记录和信息是否完整,是否存在缺失情况;
  • 一致性:数据的记录是否符合规范,是否与前后及其它数据集保持统一;
  • 准确性:数据中记录的信息和数据是否准确,是否存在异常或者错误信息;
  • 合规性:数据是否以非标准格式存储;
  • 重复性:是否记录重复数据
  • 及时性:数据从产生到可以查看的时间间隔,也叫数据的延时时长。

另外,全国信息技术标准化技术委员会提出的数据质量评价指标(GB/T36344-2018 ICS 35.24.01),它包含以下几个方面:

  • 规范性:指的是数据符合数据标准、数据模型、业务规则、元数据或权威参考数据的程度。例如 GB/T 2261.1-2003 中定义的性别代码标准是 0 表示未知性别,1 表示男,2 表示女,9 表示未说明。GB 11643-1999 中定义的居民身份证编码规则是 6 位数字地址码,8 位数字出生日期码,三位数字顺序码,一位数字校验码。
  • 完整性:指的是按照数据规则要求,数据元素被赋予数值的程度。例如互联网 + 监管主题库中,监管对象为特种设备时,监管对象标识必须包含企业统一社会信用代码 + 产品品牌 + 设备编码,监管对象为药品时,监管对象标识必须包含药品名称 + 批准文号 + 生产批号。
  • 准确性:指的是数据准确表示其所描述的真实实体(实际对象)真实值的程度。例如互联网 + 监管行政检查行为中的行政相对人为公民时,证件类型和证件号码只能是身份证号码。
  • 一致性:指的是数据与其它特定上下文中使用的数据无矛盾的程度。例如许可证信息与法人基础信息是否一致,检查计划与检查记录是否匹配。
  • 时效性:指的是数据在时间变化中的正确程度。例如企业住址搬迁后,企业法人库中的住址是否及时更新。营业执照已经办理,许可照办理时是否可以及时获取到营业执照信息。
  • 可访问性:指的是数据能被访问的程度。

除此之外,还有一些业内认可的补充指标,并且在质量工作的实际开展中,可以根据数据的实际情况和业务要求进行扩展,例如:

  • 唯一性:描述数据是否存在重复记录(国标归在准确性中)。
  • 稳定性:描述数据的波动是否是稳定的,是否在其有效范围内。
  • 可信性:描述数据来源的权威性、数据的真实性、数据产生的时间近、鲜活度高。

数据质量(Data Quality)管理贯穿数据生命周期的全过程,覆盖质量评估、数据监控、数据探查、数据清洗、数据诊断等方面。

数据质量问题

  • 数据真实性:数据必须真实准确的反映客观的实体存在或真实的业务,真实可靠的原始统计数据是企业统计工作的灵魂,是一切管理工作的基础,是经营者进行正确经营决策必不可少的第一手资料。
  • 数据准确性:准确性也叫可靠性,字段值缺失,空值。是用于分析和识别哪些是不准确的或无效的数据,不可靠的数据可能会导致严重的问题,会造成有缺陷的方法和糟糕的决策。
  • 数据唯一性:用于识别和度量重复数据、冗余数据。重复数据是导致业务无法协同、流程无法追溯的重要因素,也是数据治理需要解决的最基本的数据问题。
  • 数据完整性:数据完整性问题包括:模型设计不完整,如:唯一性约束不完整、参照不完整;数据条目不完整,例如:数据记录丢失或不可用;数据属性不完整,例如:数据属性空值。不完整的数据所能借鉴的价值就会大大降低,也是数据质量问题最为基础和常见的一类问题。
  • 数据一致性:多源数据的数据模型不一致,如:命名(含义)、数据结构、约束规则、数据实体、数据量条数、数据编码、分类层次、生命周期不一致等。相同的数据有多个副本的情况下的数据不一致、数据内容冲突的问题。
  • 数据关联性:数据关联性问题是指存在数据关联的数据关系缺失或错误,例如:函数关系、相关系数、主外键关系、索引关系等。存在数据关联性问题,会直接影响数据分析的结果,进而影响管理决策。
  • 数据及时性:数据的及时性(In-time)是指能否在需要的时候获到数据,数据的及时性与企业的数据处理速度及效率有直接的关系,是影响业务处理和管理效率的关键指标。

数据质量检测和量化

  1. 有效性
    • 字段长度有效
    • 字段内容有效
    • 字段数值范围有效
    • 枚举值集合有效
  2. 唯一性
    • 对主键是否存在重复数据的监控指标
  3. 完整性
    • 字段是否为空或NULL
    • 记录数是否丢失
    • 记录数环比波动
    • 录数波动范围
    • 记录数方差检验
  4. 准确性
    • 数值同比
    • 数值环比
    • 数值方差检验
    • 表逻辑检查
  5. 一致性
    • 表级别一致性检查
  6. 时效性
    • 表级别质量监控指标,数据是否按时产出
  7. 数据剖析
    • 最大值检查
    • 最小值检查
    • 平均值检查
    • 汇总值检查
  8. 自定义规则检查
    • 用户写自定义SQL实现的监控规则
      从有效性、唯一性、完整性、准确性、一致性、时效性、数据剖析和自定义规则检查等几个维度对数据质量进行测量,但对于现在超级大的数据量级监控所有的数据是不符合成本效率的。因此,知道哪些数据为最关键的,对这些关键数据进行全链路的数据质量,这样有助于防止错误或揭示改进的机会。
    • 数据质量问题的量化
      对于数据质量的检测结果进行分析和量化,查找出现质量问题的数据链环节,定位数据问题,实行问责机制。

数据质量管理

Data Quality Management,是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。数据质量管理不是一时的数据治理手段,而是循环的管理过程。其终极目标是通过可靠的数据,提升数据在使用中的价值,并最终为企业赢得经济效益。

Griffin

官网
GitHub
Apache Griffin,eBay开源的大数据数据质量解决方案,支持批处理和流模式两种数据质量检测方式,基于Hadoop和Spark建立的数据质量服务平台 (DQSP)。提供一个全面的框架来处理不同的任务,例如定义数据质量模型、执行数据质量测量、自动化数据分析和验证,以及跨多个数据系统的统一数据质量可视化。可从不同维度度量数据资产,提升数据的准确度和可信度,如:离线任务执行完毕后检查源端和目标端的数据数量是否一致,源表的数据空值等。

功能:

  • 度量:精确度、完整性、及时性、唯一性、有效性、一致性
  • 异常监测:利用预先设定的规则,检测出不符合预期的数据,提供不符合规则数据的下载
  • 异常告警:通过邮件或门户报告数据质量问题
  • 可视化监测:利用控制面板来展现数据质量的状态
  • 实时性:可以实时进行数据质量检测,能够及时发现问题
  • 可扩展性:可用于多个数据系统仓库的数据校验
  • 可伸缩性:工作在大数据量的环境中,目前运行的数据量约1.2PB(eBay环境)
  • 自助服务:Griffin提供一个简洁易用的用户界面,可以管理数据资产和数据质量规则;同时用户可以通过控制面板查看数据质量结果和自定义显示内容。

支持的数据源包括Hive,AVRO,Kafka,MySQL和其他RDBM。

架构
在这里插入图片描述
各部分的职责如下:

  • Define:主要负责定义数据质量统计的维度,比如数据质量统计的时间跨度、统计的目标(源端和目标端的数据数量是否一致,数据源里某一字段的非空的数量、不重复值的数量、最大值、最小值、top5的值数量等)
  • Measure:主要负责执行统计任务,生成统计结果
  • Analyze:主要负责保存与展示统计结果

一个完整的Griffin任务的执行流程:
在这里插入图片描述
注册数据,把想要检测数据质量的数据源注册到griffin。
配置度量模型,可以从数据质量维度来定义模型,如:精确度、完整性、及时性、唯一性等。
配置定时任务提交spark集群,定时检查数据。
在门户界面上查看指标,分析数据质量校验结果。
Griffin 系统主要分为:数据收集处理层(Data Collection&Processing Layer)、后端服务层(Backend Service Layer)和用户界面(User Interface)
在这里插入图片描述
数据处理和存储层:
对于批量分析,数据质量模型将根据 hadoop 中的数据源计算 Spark 集群中的数据质量指标。
对于近实时分析,使用来自消息传递系统的数据,然后数据质量模型将基于Spark 集群计算实时数据质量指标。对于数据存储,可以在后端使用ES来满足前端请求。

Apache Griffin 服务:
项目有提供Restful 服务来完成Griffin 的所有功能,例如探索数据集、创建数据质量度量、发布指标、检索指标、添加订阅等。开发人员可以基于这些 Web 开发自己的用户界面服务。

安装

实战

其他工具

通过试用其他工具,来学习数据质量管理的思路和经验。

Deequ

Amazon开源,GitHub

Great Expectations

GitHub,Python的工具包,数据科学领域。

DataWorks

阿里

DataMan

美团点评

Qualitis

GitHub

参考

posted @ 2022-08-28 18:09  johnny233  阅读(78)  评论(0编辑  收藏  举报  来源