先看清原始表:字段梳理比动手改更重要

很多数据团队接到一张原始表就急着写脚本删空值、去重,结果清洗到一半发现口径理解错了,只能推倒重来。开云在服务企业客户的过程中反复验证一个判断:清洗工作的质量,八成取决于动手前的字段梳理。拿到数据后先做三件事:确认每一列的業務含义、确认取值范围的合理边界、确认主键或唯一标识是否成立。这三件事做完,后续的每一步操作才有依据。

字段梳理建议形成一份简明的字段说明清单,包括字段名、业务含义、数据类型、是否允许为空、取值范围或枚举值。开云通常建议把这份清单和原始表一起归档,后续任何人接手都能快速理解数据结构。字段说明不需要写得很长,但必须准确,尤其是金额、数量、时间这类关键字段,单位与精度要写清楚,避免出现「元」和「万元」混用的情况。

缺失值与重复记录:先判断成因再决定处理方式

缺失值不是一律删除或一律填充。开云在实践中会把缺失分成三类来处理:一是业务上本就不该有值的字段,比如未成交订单的成交时间,这类缺失保留即可;二是采集环节遗漏造成的缺失,需要回溯数据源补齐;三是业务方确实未填写的缺失,才考虑填充或标记。填充方式也要看字段性质,数值型可以用中位数或分组均值,分类型更适合单独设一个「未填写」类别,而不是硬塞一个看似合理的值。

重复记录的判定同样需要谨慎。完全相同的两行可以直接去重,但更多时候是「同一业务对象存在多条记录」,比如同一个客户在不同时间被多次录入。这时候要区分是重复录入还是正常的业务变更。开云建议先按业务主键分组统计条数,抽样查看重复组的具体内容,确认成因后再制定去重规则,并把规则写入文档,避免不同人执行出不同结果。

  • 缺失值处理前先标注成因,保留处理痕迹
  • 重复判定以业务主键为基准,不只看整行是否相同
  • 每次清洗保留原始表副本,确保过程可回溯

把校验规则沉淀下来,让清洗从一次性动作变成流程

一次性清洗只能解决当下这张表的问题,真正有价值的是把校验规则沉淀成可复用的流程。开云在数据管理项目中通常会把规则分成三类:格式类规则,如日期格式、编码长度;逻辑类规则,如结束时间不早于开始时间、金额不为负;关联类规则,如订单表中的客户编号必须能在客户表中找到。三类规则写成清单后,可以固化成脚本或校验任务,每次新数据进入时自动跑一遍,输出异常清单而不是直接修改数据。

异常清单的价值在于把问题交还给数据来源方。开云建议为每类异常记录处理状态和责任人,形成闭环。这样清洗就不再是数据团队单方面的体力活,而是推动上游改善录入质量的抓手。流程稳定运行一段时间后,可以统计各类异常的発生频次,优先解决高频问题,整体数据质量的提升会比逐表修补快得多。

最后提醒一点:清洗流程要有版本意识。规则调整、字段增减都应在文档中记录变更说明,配合样本数据做回归验证。开云见过不少团队规则改完之后没有同步更新说明,几个月后没人说得清某批数据到底经过了哪些处理。把流程写清楚、把变更记下来,数据资产才真正可被信任和复用。