先把结论说清楚:对象格式变化后,不要在原输入规范上打补丁,而要先判断变化的性质。如果只是同一类对象换了字段名或编码方式,改映射层即可;如果对象从“可稳定标识的实体”变成了“需要人工确认的集合”,就必须把输入规范拆成校验层和人工确认层,否则工具会把无法归属的对象静默丢弃或错误合并。判断依据不是格式本身,而是新格式能否让每个输入对象保持唯一、可追溯、可复核。
换壳指对象仍是同一批实体,只是字段名、分隔符、大小写规则或编码变了。例如原来每行是域名,现在改成“域名, 备注”两列。这种变化影响的是解析规则,不改变输入对象的边界。
换对象指输入单位本身变了。例如原来输入的是单个页面地址,现在输入的是整站域名;或者原来输入的是品牌名,现在输入的是品牌名加地区加语言。这时每个输入项对应的目标不再唯一,旧规范里的“一行一项、去重后直接提交”就不再成立。
区分的实际动作:取变化后的前二十条输入,逐条问“这一条能否唯一对应一个可验证的目标”。如果超过少数几条无法回答,按换对象处理;如果全部能回答,只是字段位置变了,按换壳处理。这个动作的结果直接决定下一步走映射改造还是走流程拆分。
换壳的处理成本低,但前提是字段含义没有变。此时应做三件事:
这里有一个常见误判:把“解析成功条数”当成“可用条数”。解析成功只说明格式能读进来,不代表每个对象都符合业务要求。假设一批一千条输入全部解析成功,但其中一部分缺少可验证的标识字段,那么提交后得到的反馈会混在一起,无法判断是对象无效还是链接无效。因此解析成功后还应增加一步必填字段检查,把不满足条件的条目单独列出,而不是直接进入提交流程。
换对象后,输入规范的核心不再是“怎么读”,而是“读进来之后谁来确认归属”。此时建议把输入拆成两层:
这样做的代价是流程变长,收益是错误不会静默扩散。适用条件是:对象数量可控、且错误归属会带来明显返工。如果对象数量极大、且允许一定比例的无效提交,可以只保留校验层,把确认层降级为抽样检查。这个取舍取决于你对无效提交的容忍度,而不是工具本身的限制。
实施动作:先给确认层设一个通过阈值,例如“同一对象在两次不同来源中出现且标识一致才自动通过”。阈值定好后,先跑一批历史数据回测,看自动通过的比例是否落在可接受范围。如果自动通过比例过低,说明阈值过严或来源本身不稳定,此时应调整来源而不是放宽阈值,否则会把不确定性带入后续环节。
还有一种情况需要单独处理:格式变了,同时数据的来源渠道也变了。例如原来来自自有整理,现在来自第三方导出。这时即使字段能对上,也不能直接沿用旧规范,因为第三方导出可能包含重复、占位值或已失效对象。
判断证据是:新来源中是否存在同一对象多条记录、是否存在明显占位内容、是否有字段长期为空。出现任意一项,就应在校验层之前加一次来源标记,让后续环节能按来源分别统计通过率。这样做的结果是,当某一步骤的通过率异常时,你能判断是格式问题还是来源问题,而不是笼统地归因于“工具不好用”。
最后提醒一点:具体工具的字段支持范围、导入限制和当前可用功能,会随版本变化,需要以你实际使用的版本说明为准,不要依据旧教程或他人截图直接套用。把判断依据放在对象是否唯一、可追溯、可复核上,输入规范的修改方向就不会被格式的表象带偏。