先判断变化发生在哪一层:是工具允许上传的文件类型变了,还是同一个字段内部的数据结构变了。前者通常只需改提交前的格式转换步骤,后者往往要改字段映射、默认值和校验规则,再把历史数据按新结构回填,否则新格式能通过上传,却会在后续报表或匹配环节出错。
这是格式变化后最常见的矛盾:上传入口没有报错,但工具里读出来的计划、单元、关键词或人群信息错位。通常有两种解释。一种是外层容器变了,比如原先按一个对象一行提交,现在要求一个对象拆成多行,工具仍能解析,但把第二行当成新对象;另一种是字段语义变了,比如某个标识字段从纯数字改成带前缀的字符串,工具按旧规则截断或补零,结果能入库却匹配不上。
区分这两种解释,不能只看上传成功与否。更有效的证据是抽样比对:从新文件里挑几条记录,在工具返回的结果中逐字段核对,看错位发生在对象边界还是字段值。如果对象数量翻倍而字段值正确,问题在行结构;如果对象数量正确但某个字段普遍为空或变形,问题在字段定义。这个动作会直接决定下一步是改拆分逻辑,还是改字段映射表。
可以把变化分成两类来处理。第一类是提交格式变化,工具接受的扩展名、编码、分隔符或压缩方式不同,业务字段本身没变。此时改输入规范的重点是转换和校验:统一编码、统一分隔符、去掉多余表头,提交前用脚本检查列数和行数。第二类是对象模型变化,同一个业务对象需要携带的字段增减、层级调整或标识规则改变。此时只改转换不够,还要同步改字段映射、必填校验和默认值。
判断依据是:把新旧两份输入都按同一套字段映射解析,如果旧映射能解释新文件的大部分字段,只是位置或分隔方式不同,属于第一类;如果旧映射找不到对应字段,或者同一字段的含义已经改变,属于第二类。这个判断成立的前提是你能拿到新旧两版的字段说明或至少一份可对照的样例,否则只能先做小批量试跑。
一个可执行的动作顺序是:先更新校验规则,再跑小批量,最后回填历史数据。校验规则至少覆盖三件事——对象边界怎么识别、必填字段缺失时是拒绝还是补默认值、标识字段是否允许前导零和特殊字符。假设某业务把对象标识从纯数字改为带前缀的字符串,如果校验规则仍按数字处理,前导零会被去掉,两个不同对象可能被合并;改成按字符串处理后,同样的数据能保持区分。这个假设说明的是校验规则如何改变结果,实际规则需要按你所用工具的字段说明核对。
小批量试跑的作用是暴露映射错误,而不是证明格式正确。试跑后如果对象数量和字段值都对得上,再把规则应用到全量;如果只有部分字段对得上,先修映射,不要急着扩大提交量。历史数据是否回填,取决于旧数据是否还要参与后续匹配:如果旧标识仍会被引用,就需要保留旧规则或做一次映射转换;如果旧数据只用于归档,可以只保证新数据按新规范进入。
提交量下降、抓取量归零或某个字段大面积为空,都不能单独证明输入规范改错了。提交量下降可能是因为校验变严后拦截了不合规记录,也可能是提交频率或批次被调整;字段为空可能是映射漏配,也可能是该字段在新格式里本来就允许缺省。要区分这些解释,需要同时看三组信息:被拦截记录的错误原因、成功记录中关键字段的填充率、以及同一批数据在工具内外的一致性。只有错误原因集中指向同一类字段,才能把问题归到输入规范上。
如果工具本身是第三方品牌产品,其当前支持的格式、字段限制和校验行为需要以该工具的实际说明为准,不要按记忆中的旧版本推断。格式变化后,先拿一份最小样例验证,再决定是全量改规则还是只加一层转换。