2. 数据质量维度

聊数据质量,绕不开这六个维度。完整性、准确性、一致性、时效性、唯一性、有效性。听起来像教科书对吧?我刚开始带数据治理项目时也觉得这是纸上谈兵。直到有一次线上事故,让我彻底改观了。

那次事故很简单——某个报表的订单金额对不上。排查了两天,最后发现是上游系统某个字段允许为空,导致下游聚合时丢了30%的数据。嗯,这就是完整性问题。从那以后,我要求每个项目启动前,先把这六个维度过一遍。

2.1 完整性:数据有没有缺胳膊少腿?

完整性,说白了就是数据该有的东西有没有。字段值不能为空,记录不能丢失,关联关系不能断裂。

我在项目中遇到过最典型的场景:用户画像系统。某个用户的手机号字段为空,推荐算法直接把他当新用户处理,推送了一堆完全不相关的内容。用户投诉率飙升。

完整性检查清单:
  • 必填字段是否有NULL值?
  • 主键是否唯一且非空?
  • 外键关联是否存在孤儿记录?
  • 时间序列数据是否有断点?
我的习惯:在ETL入口层就做完整性校验。不要等到数据仓库里再补,成本差十倍不止。

2.2 准确性:数据是不是对的?

完整性保证数据存在,准确性保证数据正确。这两个维度经常被混淆,但本质不同。

举个例子:用户年龄字段填了"150"。完整性检查通过——字段非空。但准确性呢?明显不对。我曾经接手过一个客户数据迁移项目,源系统把出生年份和注册年份搞反了,导致全量数据年龄分布完全失真。修复花了整整两周。

维度 检查内容 常见问题
完整性 字段是否有值 NULL、空字符串、缺失记录
准确性 值是否真实 超出范围、格式错误、逻辑矛盾
避坑指南:我曾经在金融项目中遇到过——交易金额字段精度丢失,导致对账差了一分钱。一分钱在银行系统里意味着整个批次要重跑。所以,准确性校验一定要做边界值测试。

2.3 一致性:不同系统说的是一回事吗?

一致性,你想想看——同一个客户,CRM系统叫"张三",订单系统叫"张先生",财务系统叫"Zhang San"。这三个系统数据都对,但合在一起就乱了。

我参与过一家零售企业的数据中台建设。他们的商品编码在采购、库存、销售三个系统里用了三种不同的编码规则。每次做全链路分析,光做映射就要花三天。后来我们统一了编码规范,分析效率提升了60%。

一致性通常体现在三个层面:

  • 格式一致:日期格式、货币单位、编码规则统一
  • 逻辑一致:同一业务实体在不同系统中的属性值不矛盾
  • 时间一致:数据变更的时间戳对齐,避免时序错乱

2.4 时效性:数据是不是过时了?

时效性,说白了就是数据从产生到可用,花了多长时间。不同业务对时效性的要求天差地别。

实时风控系统,延迟超过100毫秒就可能漏掉一笔欺诈交易。而月度经营分析报表,T+1的延迟完全可接受。我建议在数据产品设计阶段就明确时效性SLA,不要等上线了再补。

时效性分级参考:
  • 实时:秒级以内,用于风控、推荐
  • 准实时:分钟级,用于监控、预警
  • 批量:小时/天级,用于报表、分析
  • 离线:周/月级,用于趋势、建模

2.5 唯一性:数据有没有重复?

唯一性,就是同一实体在数据集中只出现一次。听起来简单,做起来难。

我记得有个电商客户,他们的用户表里同一个手机号出现了三次。原因是三个不同的注册渠道各自生成了用户ID,但没有做去重。结果营销活动给同一个用户发了三张优惠券,用户觉得是系统bug,投诉了。

唯一性检查的核心:

  • 主键是否唯一?
  • 业务自然键(如身份证号、手机号)是否有重复?
  • 多源合并时是否做了去重?
我的做法:在数据建模阶段就定义好业务唯一键,并在ETL中强制校验。不要等到数据已经污染了再回头清理,那个成本太高了。

2.6 有效性:数据是否符合业务规则?

有效性,是数据质量维度里最容易被忽略的一个。它检查数据是否满足业务定义的规则和约束。

举个例子:订单状态字段,业务规则规定只能是"待支付、已支付、已发货、已完成、已取消"这五种。如果出现一个"已退款",那就是无效数据。我在项目中遇到过,某个系统升级后,状态枚举值变了,但下游消费方没同步更新,导致整个订单处理链路报错。

有效性检查通常包括:

  • 枚举值校验:字段值是否在允许的取值范围内
  • 格式校验:邮箱、手机号、身份证号是否符合规范
  • 业务规则校验:如"发货时间不能早于下单时间"
  • 依赖关系校验:如"有退款金额的订单必须处于已退款状态"

知识体系总览

下面这张图把这六个维度的关系梳理清楚了。我建议你保存下来,做数据治理方案时对照着看。

数据质量六大维度 数据质量 完整性 字段非空·记录完整 准确性 值正确·无异常 一致性 跨系统统一 时效性 延迟可控 唯一性 无重复记录 有效性 符合业务规则 核心原则 六个维度相互独立,但实践中需要协同治理 建议:每个数据产品上线前,逐维度制定质量SLA

六个维度的优先级怎么排?

你可能会问:六个维度都重要,但资源有限,先做哪个?我的经验是,分场景看。

业务场景 优先级最高的维度 原因
实时风控 时效性、准确性 延迟和误判直接导致损失
客户画像 完整性、唯一性 缺失和重复导致画像失真
财务对账 准确性、一致性 一分钱都不能差
监管报送 有效性、完整性 不合规会被罚款
我的建议:不要试图一次性搞定所有维度。先选一个业务痛点最突出的维度切入,做出效果再扩展。我曾经帮一个客户从"完整性"入手,三个月内把数据缺失率从15%降到2%,团队信心一下子就起来了。