数据质量六大维度:从理论到实战的全面解析
做金融数据清洗这么多年,我越来越觉得——数据质量不是技术问题,而是认知问题。你想想看,如果连「什么样的数据算好数据」都没搞清楚,那清洗规则写得再漂亮也是白搭。
今天咱们就聊聊数据质量的六大维度。这六个维度,说白了就是衡量数据「健康度」的体检指标。我在项目中遇到过不少团队,一上来就写清洗脚本,结果越洗越乱——就是因为没先想清楚这六个维度。
1. 完整性:数据有没有「缺胳膊少腿」?
完整性是最直观的维度。它衡量的是:该有的数据,是不是都有?
举个例子,一条交易记录,如果缺少了「交易金额」或者「交易时间」,那这条记录基本就是废的。我见过最夸张的情况——某基金公司的持仓数据,有30%的字段是空的。嗯,这种数据你敢用吗?
- 必填字段是否有空值?
- 记录数是否在合理范围内?
- 关键业务字段的填充率是否达标?
2. 准确性:数据是不是「对的」?
完整性解决的是「有没有」的问题,准确性解决的是「对不对」的问题。
我记得有一次,某银行的对账单数据,金额字段居然出现了负数——这明显不合理。还有更离谱的,日期字段填的是「2023-02-30」,2月哪来的30号?
准确性检查,我一般分两步走:
- 格式校验: 日期、金额、身份证号等字段,是否符合规范格式?
- 逻辑校验: 数值是否在合理范围内?比如年龄不能超过150岁,交易金额不能为负。
3. 一致性:数据「打架」了怎么办?
一致性,说白了就是「同一个东西,在不同地方是不是同一个说法」。
举个例子:客户A在系统1里叫「张三」,在系统2里叫「张 三」(中间多了个空格)。你说这是同一个人吗?
金融系统里这种问题特别多。我见过最头疼的是——同一个交易对手,在交易系统里叫「中国平安」,在风控系统里叫「平安集团」,在报表系统里叫「中国平安保险(集团)股份有限公司」。你想想看,这种数据怎么聚合?
| 场景 | 问题 | 解决方案 |
|---|---|---|
| 客户名称 | 全称 vs 简称 vs 带空格 | 建立标准名称映射表 |
| 交易币种 | USD vs 美元 vs $ | 统一使用ISO货币代码 |
| 日期格式 | 2023-01-01 vs 01/01/2023 | 强制转换为标准格式 |
4. 时效性:数据「过期」了没有?
金融数据,时效性就是生命。你想想看,用昨天的汇率去算今天的交易,那能对吗?
我做过一个实时风控系统,要求数据延迟不超过5秒。有一次,因为数据管道堵塞,延迟到了30秒——结果就是,一笔已经完成的交易,风控系统还没收到数据,直接漏掉了。
时效性检查,我建议关注三点:
- 数据产生时间: 数据是什么时候生成的?
- 数据到达时间: 数据是什么时候进入系统的?
- 数据使用时间: 数据被使用时,是否还在有效期内?
5. 唯一性:数据「重复」了没有?
唯一性,就是确保每条数据只出现一次。听起来简单,做起来可不容易。
我记得有一次做客户数据清洗,发现同一个客户在系统里出现了3次——名字一样,身份证号一样,但联系方式不同。你说这是同一个人吗?如果是,那该保留哪个联系方式?
唯一性检查的核心是「去重」。但去重不是简单的删掉重复记录,而是要搞清楚:
- 重复的标准是什么? 是主键重复?还是业务键重复?
- 保留哪一条? 保留最新的?还是保留最完整的?
- 重复的原因是什么? 是系统bug?还是人为误操作?
6. 规范性:数据「长得好不好看」?
规范性,说白了就是数据格式是不是统一、是不是符合标准。
举个例子:手机号字段,有的填「13800138000」,有的填「+86-13800138000」,有的填「138 0013 8000」。你说哪个对?其实都对,但如果不统一,后续处理就麻烦了。
规范性检查,我一般关注:
- 字段格式: 是否统一使用大写/小写?日期格式是否一致?
- 编码标准: 是否使用行业标准编码(如ISO、GB/T)?
- 命名规范: 字段名、表名是否符合命名规则?
知识体系总览
下面这张图,是我自己总结的数据质量六大维度关系图。你可以看到,这六个维度不是孤立的,而是相互关联的。
这六个维度,每个都很重要。但说实话,在实际项目中,你不可能一次性把六个维度都做到完美。我的建议是:
- 先抓核心: 完整性、准确性、时效性,这三个是「保命」的维度,必须优先保证。
- 再优化: 一致性、唯一性、规范性,这三个是「提效」的维度,可以在核心维度稳定后再逐步完善。