先给结论:不要直接改工具里的输入框,而是先固定“对象契约”,再改输入规范。对象契约指你交给百度司南工具的那份资料,其字段名、字段顺序、时间粒度、主体标识和空值写法。格式变化时,最先要动的不是参数,而是契约版本号与校验规则;否则同一批数据在不同角色手里会被理解成不同事实。
格式变化通常分三种,处理方式完全不同。第一种是表层变化:列顺序调整、分隔符从逗号换成制表符、编码从 GBK 换成 UTF-8。这类变化不影响语义,只需在输入规范里更新解析层说明,并保留旧文件做回归对照。
第二种是语义变化:原来“地区”写“华东”,现在写“上海”;原来“时间”是月,现在变成周。这类变化必须重写字段映射和聚合口径,否则工具读进去的仍是同一列,但含义已经漂移。
第三种是主体变化:原来一行一个品牌,现在一行一个“品牌+渠道”组合。这会影响去重逻辑和对比基准,属于最容易被忽略、也最容易让多个角色吵起来的一类。
判断方法很简单:拿新旧两份文件各取三行,让负责录入、负责解读、负责验收的三个人分别说出“这一行代表什么”。如果三个人答案不一致,就说明变化已经越过表层,进入语义或主体层。
当多个角色对同一事实理解不同时,不要开会争论,直接做一份可核对的输入规范。它不需要很长,但必须包含以下字段,并且每个字段都要能被另一人独立验证。
一个假设例子:某团队原来用“品牌”作为唯一键,后来文件变成“品牌+月份”。如果仍按品牌去重,会把十二个月压成一行,后续对比自然对不上。正确动作是先把唯一键改为组合键,再跑一次行数校验;如果行数等于品牌数乘月份数,说明映射正确,可以进入解读;如果不等于,先查月份缺失,而不是先改结论。
第一个动作是冻结一份样本文件。选格式变化后的第一份完整文件,连同它的契约版本一起存档。之后所有争议都以这份样本为准,而不是以聊天记录里的截图为准。这样做的影响是:下一次格式再变时,你有可对照的基线,能快速判断是解析问题还是语义问题。
第二个动作是先跑校验,再看结果。校验不通过时,不要急着解读趋势。行数、唯一键、必填缺失率这三项中任何一项异常,都说明输入规范还没对齐。此时继续解读,等于在错误对象上做正确计算,结论仍然不可用。
第三个动作是记录一次变更说明。写明改了什么、为什么改、谁确认、影响哪些历史对比。这份说明不需要复杂模板,一段话即可。它的作用是让后来接手的人知道,某段时间的数据不能直接和之前比,而不是误以为业务真的发生了变化。
输入规范改完后,工具本身对字段类型、编码、大小写、分隔符的容忍度,以及是否支持某些格式,属于需要核对的现行信息。不要根据旧文档或他人转述直接断定“支持”或“不支持”。核对时以当前可访问的说明或实际导入反馈为准,并记录核对日期。
如果核对结果与预期不符,优先回退到上一版契约,而不是在现场临时改字段名。临时改动会让输入规范失去版本,后续无法复现。
按这个顺序做,格式变化就不再是“工具读不进去”的问题,而是一次可核对、可回退的规范升级;下一步该改解析、改映射还是改结论,也会由校验结果直接给出答案。