不少团队做数据清洗,习惯先打开表格,看到空值就补、看到重复就删、看到格式乱就统一改一遍。改完自我感觉良好,等报表一出,业务部门一句“这个数和上月对不上”,又得推倒重来。问题往往不在清洗动作本身,而在于动手之前没有一套明确的校验规则。清洗是执行,校验规则才是依据。在星空服务企业数据管理项目的过程中,我们发现规则设计得越靠前,后续返工越少。

第一步:先盘点字段,别急着定规则

校验规则是挂在字段上的,字段没盘清楚,规则就无处落脚。建议先把待清洗表的每个字段列出来,标注四件事:字段含义、取值范围、是否必填、与其他字段的关联关系。比如“客户编号”是否全局唯一,“订单金额”是否必须大于零,“签约日期”是否不能晚于“交付日期”。这些约束写下来,规则就有了雏形。

星空在协助企业梳理字段时,常提醒一点:字段含义要写到业务人员能看懂的程度,不能只写“状态码”三个字,而要写清每个取值代表什么。含义模糊的字段,规则一定写不严谨。

第二步:把规则分层,硬规则和软规则分开

校验规则不是一刀切。可以分成两层:硬规则是必须满足的,比如主键不能重复、金额不能为负、日期格式必须统一,违反即判定为错误数据;软规则是提示性的,比如手机号位数异常、客户名称含特殊符号,违反后进入待核实清单,由人工判断。分层的好处是清洗过程有轻重,不会因为一条软规则把整批数据卡住。

  • 硬规则:唯一性、非空、值域、格式、跨字段逻辑一致性
  • 软规则:疑似重复、异常长度、罕见取值、与历史分布偏离较大
  • 两类规则分别记录命中数量,便于后续评估数据质量数据变化

第三步:设定阈值,让规则可执行

规则写完不等于能用。比如“客户名称不能为空”,听起来明确,但历史数据里空值占比可能很高,一刀切会导致大批记录被拒。这时需要设定阈值和处理策略:空值率低于多少走自动补全,高于多少转人工核查。阈值不是拍脑袋,要结合字段重要性和历史数据分布来定。星空在数据管理实践中建议,阈值先按批次统计再确定,避免规则上线第一天就误伤大半数据。

第四步:建立例外登记,别让特殊情形反复解释

任何规则都会遇到例外。某些老客户编号确实存在复用,某些历史订单金额确实为负(冲红)。这些情形如果每次都被当成错误反复沟通,清洗效率会很低。有效做法是建一张例外登记表,写清例外字段、例外条件、业务原因、审批人。规则执行时先匹配例外清单,命中则放行并留痕。这样既保住规则严肃性,也避免业务方反复解释。

第五步:清洗后做回归验证,规则才算闭环

清洗完成不是终点。要用同一套校验规则对清洗后的数据再跑一遍,看硬规则命中是否归零、软规则命中是否在可接受范围。同时抽样比对清洗前后的关键汇总指标,确认没有因为清洗动作引入新的偏差。星空在项目交付前通常会做一轮回归验证,把规则命中情况和指标差异一并记录,作为后续规则迭代的依据。

校验规则不是一次写死的文档,而是随着业务变化持续调整的资产。把上面五步走扎实,数据清洗才有据可依,星空数据管理栏目也会继续围绕规则落地中的具体问题展开讨论。