1、数据质量概述:什么是数据质量、数据质量的重要性、数据质量问题的业务影响
1.1 到底什么是数据质量?
先问大家一个问题:你手头的数据,真的「能用」吗?
我在数据治理这行干了十几年,见过太多团队一上来就搞大数据平台、上AI模型,结果跑出来的报表没人敢信。为什么?因为数据质量不过关。
数据质量,说白了就是数据满足业务使用需求的程度。它不是技术指标,而是业务指标。你想想看,一个客户地址字段,格式再规范、存储再高效,如果地址本身就是错的,那这个数据对业务来说就是垃圾。
我个人习惯把数据质量拆成六个维度来看:
| 维度 | 通俗解释 | 我踩过的坑 |
|---|---|---|
| 完整性 | 该有的字段有没有? | 曾经有个客户表,手机号字段空值率高达40% |
| 准确性 | 数据跟真实世界一致吗? | 订单金额多了一个零,财务对账对了一周 |
| 一致性 | 不同系统间数据打架吗? | CRM说「已成交」,ERP说「待付款」 |
| 及时性 | 数据更新跟得上业务节奏吗? | 实时风控用T+1的数据,等于白做 |
| 唯一性 | 有没有重复记录? | 同一个客户在系统里出现了3次 |
| 规范性 | 数据格式统一吗? | 日期字段有的写2024-01-01,有的写2024/01/01 |
核心观点:数据质量不是「有没有问题」,而是「问题在不在业务容忍范围内」。一个电商订单的收货地址,精确到小区就够了;但一个物流调度系统的地址,必须精确到门牌号。
1.2 数据质量为什么重要?
这个问题我问过很多刚入行的同事。有人回答「为了报表好看」,有人回答「为了通过审计」。其实都不对。
数据质量的重要性,我总结成三句话:
- 决策靠数据,数据不准等于瞎决策。 我记得2018年帮一家零售企业做数据治理,他们的库存数据准确率只有60%。结果采购部门按错误数据备货,光滞销库存就压了2000万。
- 效率靠数据,数据打架等于白干活。 你想想看,业务部门每天花多少时间在「对数据」上?销售说这个月业绩达标,财务说没达标,最后发现是两套系统的统计口径不一样。
- 合规靠数据,数据脏了等于吃罚单。 金融行业尤其明显。巴塞尔协议、GDPR、个人信息保护法,哪一条不要求数据可追溯、可验证?
我的经验:数据质量不是「一次性工程」,而是「持续运营」。我建议每个团队在数据平台上线第一天,就把质量监控埋进去。别等出了问题再补,那时候成本至少翻10倍。
1.3 数据质量问题的业务影响——真实案例
光讲理论没意思,我分享几个亲身经历的项目。这些案例会让你直观感受到:数据质量出问题,业务会「流血」。
案例一:电商大促的「超卖」事故
某头部电商平台,双十一当天。库存系统因为数据同步延迟,前端显示「有货」,实际仓库已经空了。结果用户下单后无法发货,投诉量暴增。最后公关花了300万才压住舆情。
根因:库存数据的及时性和一致性出了问题。OMS系统和WMS系统之间的数据管道延迟了15分钟。
案例二:银行风控模型的「误杀」
一家股份制银行,用机器学习模型做信用卡反欺诈。模型上线后,正常用户的交易被拦截率从0.5%飙升到8%。客户投诉电话打爆了客服中心。
根因:训练数据中,用户地址字段的准确性只有70%。模型学到的「异常模式」其实是数据噪声。
案例三:医疗系统的「患者主数据混乱」
某三甲医院,HIS系统里同一个患者因为姓名写法不同(张三、张 三、Zhang San),被分配了三个病历号。医生调阅历史病历的时候,只能看到片段信息,差点导致用药错误。
根因:患者主数据的唯一性和规范性没有做校验。
避坑指南:我曾经接手过一个项目,客户说「数据质量没问题,就是偶尔有点小毛病」。结果一排查,核心交易表里20%的记录存在外键引用错误。所以我的建议是——永远不要相信「感觉」,用数据说话。先跑一遍质量扫描,再谈下一步。
1.4 数据质量问题的分类框架
为了后续章节的系统诊断,我们先搭一个分类框架。我个人习惯把数据质量问题分成三大类:
- 单数据源问题——数据在产生环节就脏了。比如录入错误、格式不规范。
- 多数据源问题——数据在集成环节打架。比如不同系统的编码规则不同。
- 数据生命周期问题——数据在流转过程中变质。比如归档后数据丢失、历史数据被篡改。
下面这张图,是我在项目中常用的数据质量问题诊断框架。它帮你快速定位问题出在哪个环节:
1.5 数据质量治理的「第一性原理」
讲了这么多,我想强调一个核心观点:数据质量不是IT部门的事,是全员的事。
为什么?因为数据是在业务流转中产生的。录入员手抖输错一个数字,销售为了冲业绩造一个假客户,运维为了省事关掉数据校验——这些「人」的因素,才是数据质量问题的真正根源。
我建议每个团队在启动数据治理之前,先做三件事:
- 定标准:谁负责录入?什么格式?什么频率?白纸黑字写清楚。
- 埋监控:关键字段的质量指标,每天自动扫描,出问题就报警。
- 建闭环:发现问题 -> 定位根因 -> 修复数据 -> 改进流程。别只修数据不改流程,那样问题会反复出现。
一个小技巧:我习惯在数据仓库的每一层都加一个「质量检查点」。ODS层检查完整性,DWD层检查一致性,DWS层检查准确性。这样问题在哪一层出现,一眼就能看出来。