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 时间戳监控、延迟告警
唯一性 数据是否重复? 订单重复记录 主键去重、业务键唯一性检查
有效性 数据是否合规? 邮箱格式错误 正则校验、枚举值检查

好了,第一章的内容就到这里。数据质量这个概念,说起来简单,做起来全是细节。后面的章节,我会带着你一步步搭建一套真正能落地的校验规则体系。咱们下章见。