【数据质量】一起聊聊数据质量

news2025/1/19 10:16:24

Garbage In, Garbage Out


​ 数据质量关注的是数据的健康,数据健康和人的健康很相似,人的健康会影响人的生活品质,同样数据的健康会影响数据的使用品质。为了保证我们健康,我们需要养成良好的生活习惯,膳食平衡,注意锻炼,定期体检,使我的的身体健康。同样数据也需要如此,我们需要好的开发规范,执行数据标准,定期数据质量评估,采取干预保持数据质量长青。

​ 正像我们需要医院一样,我们需要一个组织去管理数据质量,对症下药,用专业的方法、工具和相应的制度保障提高数据质量。

​ LeanData给出了数据质量的定义:

The degree to which data meets the requirements of the processes it is used in.

从定义来看数据质量是一个主观的、相对的,数据质量就是衡量数据满足使用需求的程度,什么是高质量的数据,完全能够满足用户需求的就是高质量的数据。我们再深入推导,对于不同用户对于相同的数据就有不同的评判,例如,对于一条客户信息,销售部门和采购部门就有可能给出不同的数据质量评价。走到这我们基本上了解了什么是数据质量的本质了,当我们做数据质量工作时,要有的放矢,需求是什么,质量痛点是什么,有的放矢,事半功倍。

数据质量管理方法

数据治理管理体系没有成熟的方法论,但是产品和服务的质量管理体系已经非常成熟。国际上有ISO9001、六西格玛等,大道相通,这些管理体系同样可以应用于数据质量管理,有人参照六西格玛搞了一个数据质量6步模型,有很好的借鉴意义,该模型如下:
在这里插入图片描述

  • 定义阶段(Definition):从业务出发,搞清楚业务需求,业务目标,我们能通过数据质量的提高能获得什么,做这项工作的意义与价值,说直接点就是做好立项报告。
  • 评估阶段(Assessment):进行数据质量现状调研,从下面讲到的数据质量维度上多层级进行量化评估,分析对哪些业务造成不利影响。
  • 分析阶段(Analysis):分析当前数据现状和目标之间的差距,分析问题原因,制定解决方案。
  • 提高阶段(Improvement):基于上一阶段的分析,制定实施计划,相应的改善措施包括制度、组织、工具、方法。
  • 实施阶段(Implementation):依照上一阶段的实施计划进行实施。
  • 控制阶段(Control):建立长效机制,进行管控,持续优化改进。

数据质量维度

谈到数据质量,就必须了解评价数据质量的维度。正如《一起聊聊数据治理》中说的那样,数据治理成功的关键有一条是以绩效考核推动数据质量管理,因此有必要清楚的认识数据质量应该从哪些维度上评价,DAMA提出了数据质量的六个核心维度,见下图:

在这里插入图片描述

  • 完整性(Completeness):完整性是指数据信息信息是否存在缺失的状况,常见数据表中行的缺失,字段的缺失,码值的缺失。比如虽然整体pv是正确的,但在某个维度下,只有部分打点,这就是存在完整性的问题。不完整的数据所能借鉴的价值就会大大降低,也是数据质量问题最为基础和常见的问题。常见统计sql:count( not null) / count(*)
  • 有效性Validity :有效性一般指范围有效性、日期有效性、形式有效性等主要体现在数据记录的规范和数据是否符合逻辑。规范指的是,一项数据存在它特定的格式,如:手机号码一定是11位的数字;逻辑指的是,多项数据间存在着固定的逻辑关系,如:PV一定是大于等于UV的。
  • 准确性(Accuracy):准确性是指数据记录的信息是否存在异常或错误。最为常见的数据准确性错误就如乱码。其次,异常的大或者小的数据也是不符合条件的数据。准确性可能存在于个别记录,也可能存在于整个数据集,例如数量级记录错误。这类错误则可以使用最大值和最小值的统计量去审核。
  • 及时性(Timeliness):及时性是指数据从开始处理到可以查看的时间间隔。及时性对于数据分析本身的影响并不大,但如果数据建立的时间过长,就无法及时进行数据分析,可能导致分析得出的结论失去了借鉴意义。比如:实时业务大盘数据,及时反映业务关键指标的情况,暴露业务指标的异常波动,机动响应特殊突发情况都需要数据的及时更新和产出。某些情况下,数据并不是单纯为了分析用而是线上策略用,数据没有及时产出会影响线上效果。
  • 一致性(Consistency):一致性是指相同含义信息在多业务多场景是否具有一致性,一般情况下是指多源数据的数据模型不一致,例如:命名不一致、数据结构不一致、约束规则不一致。数据实体不一致,例如:数据编码不一致、命名及含义不一致、分类层次不一致、生命周期不一致等。
  • 唯一性(Uniqueness): 在数据集中数据不重复的程度,唯一数据条数,和总数据条数的百分比。比如 count(distinct business key) / count(*),一般用来验证主键唯一性。

数据质量检查项

数据评估阶段通过数据报告来完成,利用应用统计方法返回一组关于数据的标准特征,该特征在各个数据治理维度展开,全面对数据在每个检查项上进行量化的统计,按照质量评价体系进行打分,初步评估报告的目的是获得对数据和环境的了解,并对数据的状况进行描述。

编号数据质量维度检查项检查项说明
1完整性空值或字符串检查主要包括实体缺失、属性缺失、记录缺失和字段值缺失四个方面
2完整性外键缺失检查主外键完整性检查
3完整性外关联约束检查例如楼盘表中的城市必须在城市维表中存在
4有效性格式规范检查如日期格式检查、身份证格式、
5有效性数值范围检查值域约束,如:楼栋高度在0-100之间
6有效性枚举值检查业务规则定义约束
7准确性总和检查根据参考值来判断合理性
8准确性平均值检查根据参考值来判断合理性
9准确性最大值检查根据参考值来判断合理性
10准确性最小值检查根据参考值来判断合理性
11及时性更新频率检查数据提取、传送、处理、装载、展现的周期
12及时性时间差检查最新数据与当前时间的差值
13一致性单表等值一致检查如上刊率=上刊时长/可用上刊时长
14一致性一致约束检查如合同的结束日期不能早于开始日期
15一致性跨表等值检查如:同一指标在多表中存在,需要保持数据值一致
16一致性同步一致检查数据在迁移或者加工前后是否一致
17唯一性主键唯一检查主键唯一
18唯一性符合字段唯一检查联合主键唯一

数据质量监控工具介绍

目前市面上有一些开源的监控工具如Amazon Deequ,Apache Griffin, 但这些工具大多只有监控功能,没有数据问题处理功能,一般数据工程师可以按照本文描述的方法进行监控规则设置,数据问题处理以及数据监控报表展示。

  1. Deequ Git:https://github.com/awslabs/deequ

    Deequ Introduction: https://aws.amazon.com/blogs/big-data/test-data-quality-at-scale-with-deequ/

  2. Griffin Git: https://github.com/apache/griffin

    Griffin Introduction: https://griffin.apache.org/docs/quickstart.html

参考文章

  1. 数据质量漫谈
  2. Here is how to start with data quality
  3. 如何做好数据质量管理?
  4. 数据质量管理:6个维度,50个检查项!
  5. 大数据之数据质量检查

原文: 数据质量:一起聊聊数据质量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Open3D DBSCAN聚类(Python版本)

文章目录 一、简介二、算法步骤三、实现代码四、实现效果参考资料一、简介 DBSCAN算法,全称为“Density-Based Spatial Clustering of Applications with Node”,也就是“基于密度的聚类”。此类算法是假设聚类结构能通过样本分布的紧密程度确定,从样本密度的角度来考察样本…

亿发浅析:财务一体化功能与管理流程

在信息时代的背景下,企业信息化已成为中小企业降低成本、提高效率、提高竞争力的重要手段,也是中小企业实现长期可持续发展的有效途径。 信息化对企业管理的好处是显而易见的,如加快信息流,提高信息资源利用率,促进企业…

STM32使用FSMC驱动LCD

关于FSMC驱动LCD的函数LCD_WR_REG的理解首先你需要理解使用结构体LCD_BASE若有错误,请各位师兄师姐指点原理框图重要的函数理解关于LCD_BASE和函数LCD_WR_REG(u16 regval)的理解至于0X6C00 0802地址也是一样的。首先要说的是这是我个人的理解…

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (五)位拆分与运算

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (五)位拆分与运算 🔈声明: 😃博主主页:王_嘻嘻的CSDN博客 🧨未经作者允许,禁止转载 🔑系列专栏:牛客Veri…

Burp Suite Professional 2023.1 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org Burp Suite Professional&a…

《后端技术面试 38 讲》学习笔记 Day 07

《后端技术面试 38 讲》学习笔记 Day 07 21丨分布式架构:如何应对高并发的用户请求 原文摘抄 当同时访问系统的用户不断增加的时候,需要消耗的系统计算资源也不断增加,需要更多的 CPU 和内存去处理用户的计算请求,需要更多的网络…

二叉树、平衡二叉树、红黑树、B树、B+树、B*树的区别

二叉树 如下图,是一个二叉树的结构图片: 可以看到无论是对象“9”、还是“5”、“13”、“2”、“7”、“11”、“15”它们的下面分别都叉了两个其他的对象。而且这两个对象都是左边的数值要小一些,右边的数值要大一些。 所以这就是二叉树的…

Qt+C++堆叠多窗口界面切换

程序示例精选 QtC堆叠多窗口界面切换 如需安装运行环境或远程调试&#xff0c;见文章底部个人微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC堆叠多窗口界面切换>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读…

停车系统源码-基于springboot+uniapp开源项目

Iparking停车收费管理系统-可商用介绍Iparking是一款基于springBoot的停车收费管理系统&#xff0c;支持封闭车场和路边车场&#xff0c;支持微信支付宝多种支付渠道&#xff0c;支持多种硬件&#xff0c;涵盖了停车场管理系统的所有基础功能。技术栈Springboot,Mybatis Plus,B…

聚观早报 | 推特将释放15亿用户名售卖;微信回应切断抖音外链

今日要闻&#xff1a;比亚迪摘得国内汽车年度销量冠军&#xff1b;推特将释放15亿用户名进行售卖&#xff1b;微信回应切断抖音外链&#xff1b;原阿里云盘负责人、Teambition 创始人齐俊元加入飞书&#xff1b;辉瑞CEO称新冠药不能太便宜推特将释放15亿用户名进行售卖 1 月 12…

直播回顾 | 如何运用数智化助力光伏上游产业节能降碳(下)——企业降碳篇

1月12日&#xff0c;始祖科技【始祖双碳研习社】行业解决方案第二期顺利结束&#xff0c;在第一期的基础上为大家带来了“双碳”政策对光伏上游企业提出的新要求&#xff0c;数智技术在光伏领域发挥双碳赋能作用&#xff0c;数智技术实现光伏领域“双碳”赋能的路径等多个维度的…

PMP证书获取指南来了

为什么考PMP证书是值得的&#xff1f;甚至对于管理人员来说是必须的&#xff1f; 1、个人能力的提高 考取PMP证书是一个系统的学习过程&#xff0c;让你的管理思维更加清晰&#xff0c;可能很多人都是从野路子&#xff0c;自己从实践中摸索管理经验&#xff0c;但是学完PMP证…

功率放大器在体外构建工程化心肌组织研究中的应用

实验名称&#xff1a;多功能明胶复合水凝胶的制备及体外构建工程化心肌组织的研究 研究方向&#xff1a;生物医学 测试目的&#xff1a; 制备一种基于GelMA的三维各向异性的电磁功能复合水凝胶支架&#xff08;GelMA-PDA-rGO-Fe3O4&#xff09;&#xff0c;由Fe3O4纳米颗粒修饰…

Python内存管理与垃圾回收

Python内存管理与垃圾回收引用计数器标记清除分代回收缓存机制※※引用计数器为主&#xff0c;标记清除和分代回收为辅缓存机制 引用计数器 1.1 c语言中的环状双向链表refchain.&#xff1a; 在Python的C源码中有一个refchain的环状双向链表&#xff0c;Python程序当中一旦创…

一个.Net简单、易用的配置文件操作库

在我们日常项目开发中&#xff0c;操作INI/CFG配置文件&#xff0c;往往会通过调用WinAPI来实现&#xff0c;WinAPI接口参数只支持字符串&#xff0c;而我们项目中&#xff0c;往往数据类型是多种多样的&#xff0c;在保存和获取配置值&#xff0c;我们就要进行类型的转换。 今…

【 uniapp - 黑马优购 | 购物车页面(3)】结算页面组件封装与渲染 (超详细代码讲解)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️***个人主页&#x1f947;&#xff1a;***小新爱学习. &#x1f43c;***个人WeChat&#xff1a;见文末*** &#x1f54a;️***系列专栏&#xff1…

C语言 动态内存管理函数的 深度解析 #是不是对数组不能变大变小而烦恼呢?学会动态内存管理函数,消去数组耿直的烦恼#

文章目录前言为什么存在动态内存分配&#xff1f;malloc 和 free1.malloc2.free3.使用callocrealloc常见的动态内存错误1.对NULL指针的解引用操作2.对动态开辟空间的越界访问3.对非动态开辟内存使用free释放4.使用free释放一块动态开辟内存的一部分5.对同一块动态内存多次释放6…

启动优化·基础论·浅析 Android 启动优化

“ 【小木箱成长营】启动优化系列文章(排期中)&#xff1a; 启动优化 工具论 启动优化常见的六种工具 启动优化 方法论 这样做启动优化时长降低 70% 启动优化 实战论 手把手教你破解启动优化十大难题 ”一、引言 Hello&#xff0c;我是小木箱&#xff0c;欢迎来到小木箱成…

Transformer——day63 读论文:SST:用于多标签图像识别的空间和语义变压器

SST&#xff1a;用于多标签图像识别的空间和语义变压器SST&#xff1a;用于多标签图像识别的空间和语义变压器I. INTRODUCTIONII. RELATED WORKA. Multi-Label Image RecognitionB. Transformer in Computer VisionIII. APPROACHA. MotivationB. Recap of TransformerC. Modeli…

【Java寒假打卡】Java基础-多线程

【Java寒假打卡】Java基础-多线程概述读线程实现方式-继承Thread多线程实现方式-Callable三种实现方式的对比Thread方法守护线程线程的优先级概述 并发和并行 进程和线程 读线程实现方式-继承Thread 继承Thread类进行实现 package com.hfut.edu.test11;public class MyThr…