1. 数据质量概述:到底什么是数据质量?
大家好,我是老赵。做数据这行十几年了,今天咱们聊聊一个最基础、也最容易被忽视的话题——数据质量。
你可能觉得,数据质量不就是数据干不干净吗?嗯,对,但不全对。我个人的理解是:数据质量,就是数据在多大程度上能支撑你做出正确的决策。说白了,数据是拿来用的,不是拿来供着的。
核心定义:数据质量 = 数据满足业务需求的程度。脱离业务场景谈数据质量,就是耍流氓。
1.1 数据质量为什么重要?
我记得刚入行那会儿,带我的老大哥说过一句话,我一直记到现在:「垃圾进,垃圾出」。你想想看,底层数据都是错的,上层报表再漂亮,那也是自欺欺人。
我在项目中遇到过好几次这样的场景:业务部门拿着报表来找我们,说数据对不上。一查,原来是某个上游系统的字段格式变了,ETL 没感知到,直接拉了一堆乱码进来。结果呢?整个团队花了三天时间回溯数据,业务决策也耽误了。
数据质量差,会带来几个实实在在的后果:
- 决策失误: 基于错误数据做出的判断,比没有数据更可怕。
- 成本浪费: 数据清洗、返工、排查问题,消耗的是真金白银。
- 信任崩塌: 业务部门一旦不信你的数据,数据团队的价值就归零了。
- 合规风险: 金融、医疗等行业,数据不准可能直接导致罚款。
避坑指南: 我曾经见过一个团队,花了大半年搭建数据平台,结果上线第一天就被业务吐槽数据不准。原因很简单——他们从来没跟业务对齐过「什么是准」。所以,数据质量的第一关,不是技术,是沟通。
1.2 数据质量的六大维度
聊完了重要性,咱们进入正题。业界公认的数据质量有六个核心维度。我习惯把它们记成「完准一及有有」——嗯,不太好听,但好记。
下面这张图,是我自己梳理的六大维度关系图,你可以先有个整体印象:
下面,我一个一个拆开来讲。
1. 完整性(Completeness)
完整性,就是看数据有没有缺胳膊少腿。比如用户注册时,手机号是必填项,结果有 20% 的记录手机号是空的——这就是完整性有问题。
我建议你在做数据接入时,先问自己三个问题:
- 哪些字段是业务上必须有的?
- 缺失率达到多少算不可接受?
- 缺失的数据是随机丢失,还是系统性问题?
2. 准确性(Accuracy)
准确性关注的是数据对不对。举个例子,用户年龄填的是 200 岁,格式上没问题,但显然不准确。
我在项目中遇到过最典型的场景是:两个系统对同一个客户的「月收入」字段,一个单位是元,一个单位是千元。数据拉过来直接汇总,结果可想而知。所以,准确性校验往往需要跟业务规则绑定。
3. 一致性(Consistency)
一致性,说白了就是「同一个东西,在不同地方得长一个样」。比如 CRM 系统里客户叫「张三」,到了订单系统变成了「张 三」(中间多了个空格),这就叫不一致。
你想想看,如果数据仓库里的客户维度表和事实表对不上,那你的报表还能看吗?
4. 及时性(Timeliness)
及时性,就是数据能不能在业务需要的时候到位。比如风控系统要求交易数据延迟不超过 5 分钟,结果你每天跑一次批处理——那黄花菜都凉了。
这里有个坑:不是所有数据都需要实时。我建议你根据业务场景,给数据分个级:哪些要秒级、哪些要分钟级、哪些 T+1 就够了。
5. 唯一性(Uniqueness)
唯一性,就是看有没有重复数据。比如同一个订单在数据库里出现了两条记录,那统计订单数的时候就会翻倍。
我曾经帮一个电商客户做数据治理,发现他们的订单表里居然有 15% 的重复记录。原因是什么?接口重试机制没做好,同一个请求发了两次。嗯,这种问题,源头治理比事后清洗重要得多。
6. 有效性(Validity)
有效性,也叫合规性。它检查数据是否符合预定义的格式、类型、取值范围。比如性别字段只能填「男」或「女」,结果有人填了个「未知」——这就是有效性不通过。
常见的有效性规则包括:
- 字段类型检查(字符串不能出现在数字字段里)
- 值域检查(年龄 0-150,超出即无效)
- 格式检查(邮箱必须包含 @)
- 枚举值检查(状态只能是 A/B/C)
小技巧: 我个人习惯在数据接入层就做有效性校验,而不是等到数据进仓库再处理。早发现、早拦截,能省掉后面 80% 的麻烦。
1.3 六大维度之间的关系
这六个维度不是孤立的。我举个例子你就明白了:
假设你有一个用户表,手机号字段缺失率很高(完整性问题)。你补全了手机号,但补进来的数据格式不对,有的带国家码,有的不带(有效性问题)。你统一了格式,结果发现同一个用户在不同系统里手机号不一样(一致性问题)。你终于对齐了,但数据是三天前的,业务要的是实时的(及时性问题)。
你看,一环扣一环。所以搭建数据质量校验体系时,我建议你不要试图一次性解决所有问题。先抓最痛的点,比如完整性和准确性,再逐步覆盖其他维度。
| 维度 | 核心问题 | 典型场景 | 校验方式 |
|---|---|---|---|
| 完整性 | 数据是否缺失? | 必填字段为空 | 空值检测、字段覆盖率统计 |
| 准确性 | 数据是否真实? | 年龄 200 岁 | 业务规则校验、交叉验证 |
| 一致性 | 数据是否对齐? | 跨系统数据对不上 | 字段映射比对、哈希校验 |
| 及时性 | 数据是否及时? | 延迟超过 SLA | 时间戳监控、延迟告警 |
| 唯一性 | 数据是否重复? | 订单重复记录 | 主键去重、业务键唯一性检查 |
| 有效性 | 数据是否合规? | 邮箱格式错误 | 正则校验、枚举值检查 |
好了,第一章的内容就到这里。数据质量这个概念,说起来简单,做起来全是细节。后面的章节,我会带着你一步步搭建一套真正能落地的校验规则体系。咱们下章见。