数据质量挑战:常见问题与根源分析

说实话,做了这么多年数据工程,我见过太多因为数据质量问题翻车的项目了。有的直接导致报表对不上,有的让机器学习模型跑偏,最惨的一次是某电商大促期间,因为重复数据导致库存系统崩溃——嗯,那场面,真是记忆犹新。

这一章咱们就来聊聊,数据质量到底会出哪些幺蛾子,以及这些问题的根儿在哪儿。

2.1 四大常见数据质量问题

我把日常工作中遇到的数据质量问题归纳为四类。你想想看,是不是基本都逃不出这个范围?

问题类型 典型表现 影响程度
缺失值 字段为空、NULL、占位符 高
重复数据 完全重复、部分重复、业务重复 高
异常值 超出范围、逻辑矛盾、离群点 中-高
格式不一致 日期格式、编码、单位不统一 中

2.1.1 缺失值——数据里的"黑洞"

缺失值是最常见的问题,没有之一。我个人习惯把缺失值分成三种:

  • 完全随机缺失:比如用户填表单时手滑跳过了某个字段
  • 随机缺失:跟其他字段有关,但跟自身无关。比如高收入人群更不愿意填收入字段
  • 非随机缺失:跟自身值有关。比如收入特别高的人故意不填收入——这种最麻烦

避坑指南:我曾经接手过一个用户画像项目,发现年龄字段有30%的缺失。一开始以为是随机缺失,后来一查才发现——系统只在用户登录时采集年龄,而大部分用户都是"登录一次,用三年"。这属于典型的非随机缺失,直接填充均值会严重扭曲分布。

2.1.2 重复数据——看似一样,实则灾难

重复数据分三个层次:

  1. 完全重复:所有字段一模一样。通常是ETL过程重复抽取导致的
  2. 主键重复:ID相同,但其他字段有差异。比如同一个订单被更新了两次
  3. 业务重复:字段不完全相同,但指向同一实体。比如"张三"和"张先生"其实是同一个人

我记得有个客户做用户画像,用户表里"张三"出现了7次,每次手机号都不一样。最后分析出来的用户画像——嗯,一个人有7种消费习惯,你说这画像准不准?

2.1.3 异常值——数据里的"噪音"

异常值不一定是错误,但一定要警惕。我一般用三种方法识别:

  • 统计法:3σ原则、IQR(四分位距)
  • 业务法:比如年龄不能超过150岁,温度不能低于零度
  • 模型法:孤立森林、LOF(局部异常因子)

我的经验:别一看到异常值就删。有一次我在处理传感器数据时,发现某个温度值突然飙到200度——按规则应该剔除。结果一查,是设备真的着火了。异常值有时候比正常值更有价值。

2.1.4 格式不一致——最容易被忽视的问题

格式不一致看着是小问题,但坑起来真要命。我见过最离谱的:

  • 日期格式:2024-01-15、01/15/2024、2024年1月15日、15-JAN-2024——四种格式混在一个表里
  • 编码问题:UTF-8、GBK、ISO-8859-1混用,中文直接变乱码
  • 单位问题:有的用米,有的用厘米,有的用英尺

说白了,格式不一致就是数据治理的"面子工程"没做好。但面子工程做不好,里子迟早要出事。

2.2 数据质量问题的根源分析

问题找到了,咱们得挖挖根儿。我画了张图,把数据质量问题的根源梳理了一下:

数据质量问题根源分析 数据质量问题根源 数据源头问题 采集流程问题 存储架构问题 管理规范问题 人工录入错误 传感器偏差 第三方数据 ETL逻辑缺陷 数据漂移 时间窗口错位 Schema变更 编码不一致 分区策略问题 缺乏标准规范 权限混乱 监控缺失 核心观点 80%的数据质量问题可以追溯到源头和流程,而非技术本身。 管理规范是成本最低、效果最好的预防手段。

2.2.1 数据源头问题

数据从哪儿来,问题就从哪儿来。我总结了三类:

  • 人工录入:手误、理解偏差、故意造假。我见过一个销售为了冲业绩,一天录了200条假客户信息
  • 系统采集:传感器漂移、API超时、日志截断。IoT项目里最常见
  • 外部数据:第三方数据质量不可控,字段定义可能跟你的理解完全不同

2.2.2 采集流程问题

流程问题往往比源头问题更隐蔽。我踩过最大的坑就是数据漂移——明明数据源没问题,但ETL跑出来的结果就是不对。

注意:我曾经遇到一个案例,凌晨2点的批处理任务因为上游系统延迟,导致当天的数据被划到了前一天。这种"时间窗口错位"问题,如果不做数据血缘追踪,根本发现不了。

2.2.3 存储架构问题

存储层面的问题,说白了就是"地基没打好":

  • Schema变更:上游改了字段类型,下游没同步更新
  • 编码不一致:同一个数据库,有的表用UTF-8,有的用GBK
  • 分区策略:分区键选错了,导致数据倾斜或者丢失

2.2.4 管理规范问题

这个其实是最要命的。技术问题都能修,管理问题修起来——嗯,你懂的。

我见过一个团队,数据字典写了300页,但没人看。为什么?因为字典是项目初期写的,项目上线后就没更新过。说白了,管理规范不是写出来就完事了,得有人维护、有人执行、有人监督。

我的建议:别一上来就搞什么"数据治理委员会"。先定三条最简单的规则:

  1. 所有新增字段必须经过评审
  2. 所有数据变更必须有回滚方案
  3. 所有数据质量问题必须在24小时内上报

这三条做到了,80%的问题都能提前拦住。

2.3 小结

数据质量问题,说白了就四个字:人、机、料、法。人(源头)、机(系统)、料(数据本身)、法(流程规范)。

你可能会问:这么多问题,从哪儿开始修?我的建议是——先抓源头和流程。因为这两个环节修好了,后面存储和管理的问题会少一大半。至于具体怎么修,咱们后面几章慢慢聊。