数据质量六大维度:完整性、准确性、一致性、及时性、唯一性、有效性
聊数据可观测性,绕不开一个核心问题:数据到底能不能用?
我见过太多团队,管道跑得飞起,看板漂漂亮亮,结果业务一用就骂娘。为什么?因为数据质量没人管。说白了,数据可观测性的第一步,就是把这六个维度盯死。
这六个维度不是我编的,是业界摸爬滚打多年总结出来的。我自己的习惯是,每接入一个数据源,先拿这六把尺子量一遍。今天咱们一个一个拆开讲。
核心观点:数据质量不是玄学,是可度量、可监控、可改进的工程问题。六大维度就是你的质检清单。
1. 完整性:数据有没有缺胳膊少腿?
完整性,就是看数据有没有缺失。字段空值、记录丢失、文件截断,都算。
我记得有一次帮一家电商公司做数据审计。他们的订单表每天几百万条,看起来没问题。但我一查,发现「收货地址」字段有 12% 是空的。业务方说没事,反正能发货。结果双十一大促,物流系统直接崩了——因为地址不全,分拣机读不了。你看,这就是完整性的代价。
实战检查清单:
- 必填字段空值率是否超过阈值(比如 1%)?
- 上游表与下游表记录数是否一致?
- 文件传输是否完整(对比文件大小或行数)?
2. 准确性:数据对不对?
完整性管「有没有」,准确性管「对不对」。数据在,但值是错的,比没有更可怕。
举个例子:用户年龄字段填了 200 岁,或者订单金额多了两个零。这种错误会直接污染你的报表和模型。
我建议在管道里加一个值域校验。比如年龄在 0-120 之间,金额不能为负数。听起来简单,但很多团队就是不做。为什么?觉得麻烦。嗯,等出一次事故你就知道了。
避坑指南:我曾经接手过一个项目,上游系统把「日期」字段的格式从 YYYY-MM-DD 改成了 MM/DD/YYYY,下游没感知。结果所有按日期聚合的报表全错了,排查了三天。所以,准确性校验一定要包含格式和类型检查。
3. 一致性:不同系统说的是一回事吗?
一致性,说白了就是「同一个东西,在不同地方得长一个样」。
你想想看,CRM 系统里客户叫「张三」,ERP 系统里同一个客户叫「Zhang San」,数据仓库里又变成「ZS」。这怎么分析?
我见过最夸张的案例:一家银行,同一个客户的「性别」字段,在核心系统是 0/1,在风控系统是 M/F,在报表系统是「男/女」。每次做客户画像都要写一堆映射逻辑,累不累?
| 维度 | 常见问题 | 业务影响 |
|---|---|---|
| 完整性 | 字段空值、记录缺失 | 报表失真、流程中断 |
| 准确性 | 值域错误、格式错误 | 决策错误、模型污染 |
| 一致性 | 编码不统一、单位不一致 | 数据无法关联、ETL 复杂 |
| 及时性 | 数据延迟、过期未更新 | 错过业务窗口、实时失效 |
| 唯一性 | 重复记录、主键冲突 | 统计偏差、重复操作 |
| 有效性 | 格式违规、业务规则不符 | 下游解析失败、合规风险 |
4. 及时性:数据来得够快吗?
及时性,就是数据从产生到可用,花了多长时间。
不同的业务场景,对及时性的要求天差地别。实时风控要求毫秒级,日报可以接受 T+1,月报甚至 T+7 都行。关键是要有明确的 SLA,并且能监控。
我个人习惯给每个数据管道打一个「延迟标签」。比如:
- 实时管道:延迟 < 5 分钟
- 准实时管道:延迟 < 30 分钟
- 离线管道:延迟 < 24 小时
一旦超时,自动告警。别等到业务方来问「昨天的数据怎么还没出来」,那就被动了。
5. 唯一性:数据有没有重复?
唯一性,就是看有没有重复记录。同一个订单出现两次,同一个用户被注册两遍,都会出大问题。
我记得有一次做用户画像,发现某个用户的购买频次异常高。一查,原来是数据管道重跑了一次,订单表里多了 3 万条重复记录。还好发现得早,不然模型就废了。
常用手段:
- 主键去重:确保每条记录有唯一标识
- 窗口去重:基于时间窗口和业务键去重
- 定期审计:对比上下游记录数,发现异常
6. 有效性:数据符合业务规则吗?
有效性,是比准确性更「软」的一个维度。它关心的是:数据是否符合业务定义的规则。
举个例子:一个「订单状态」字段,业务只定义了「已创建、已支付、已发货、已完成、已取消」五种状态。如果出现一个「已退款」,虽然格式正确、值域合法,但业务不认,这就是无效数据。
我建议在数据接入层就做业务规则校验。比如:
- 枚举值必须在白名单内
- 关联字段必须存在(比如订单必须有对应的用户)
- 时间逻辑必须合理(比如结束时间不能早于开始时间)
一句话总结:完整性管「有没有」,准确性管「对不对」,一致性管「统不统一」,及时性管「快不快」,唯一性管「重不重」,有效性管「合不合规」。六把尺子量完,数据能不能用,心里就有数了。
这六个维度,不是一次性搞定的。我建议你从完整性和准确性入手,这两个最基础,也最容易出效果。然后逐步加上其他维度。一口吃不成胖子,数据质量也是。