结论先行:如果只是工具侧新增了对象格式,而你的原始数据仍能稳定导出旧格式,优先在导入前加一层格式转换,不要立刻改采集口径;如果原始数据源本身已经不再产出旧格式,才需要重写输入规范,并把校验规则一起迁移。判断依据不是工具提示什么,而是你的数据源是否还能稳定产出旧格式。
对象格式变化通常发生在三个位置:数据源导出格式、中间整理环节、工具接收格式。三者混在一起时,最容易把“工具不认”误判成“数据错了”。
一个可操作的动作:先拿一小批旧数据和新数据各跑一次,只记录失败发生在哪一步。如果旧数据仍能通过,说明问题在数据源或整理环节;如果旧数据也失败,才考虑工具接收格式已经变化。这个动作的结果直接决定下一步是改采集,还是只改导入层。
输入规范不是把字段名改一遍就结束。真正要固定的是对象标识、必填字段和缺失值写法,这三件事决定后续能不能对得上。
假设一个场景:某批对象原来用数字编号做唯一键,新格式改成了“编号+日期”的组合。如果你仍按单字段去重,同一天内不同编号会被误判为同一对象,跨天又会把同一对象拆开。此时输入规范要增加一条组合键规则,并说明日期缺失时该记录如何处理。这里的关键不是工具本身,而是你的规范有没有把组合逻辑写清楚。
反例:如果格式变化只影响展示层,不影响字段语义和唯一键,那么改输入规范反而会增加维护成本。例如导出文件从 CSV 换成另一种分隔文本,但字段顺序、字段含义、唯一键都没变,这时只需要在导入前做一次格式转换,规范本身可以不动。
另一个容易误判的情况是:工具返回结果变少或为空。请求量、抓取量或返回条数下降,不能单独证明是输入规范错了。合理解释还包括数据源当天没有更新、查询条件被收窄、工具侧对某类对象暂时不返回结果。要区分这些原因,可以把同一批对象分别用旧规范和新规范各跑一次,比较失败记录是否集中在某一类字段上。如果失败集中在新增字段,才说明规范需要扩展;如果失败分散且与字段无关,更可能是数据源或工具状态问题。
确定要改之后,按下面顺序推进,避免一次改太多导致无法定位问题。
这个顺序的结果是:你能明确知道失败是来自格式变化,还是来自规范改写本身。如果跳过并行期直接替换,一旦失败,很难判断是数据源的问题还是规范的问题。
先取一小批同时满足旧格式和新格式的对象,按上面的三件事逐条核对,确认唯一键、必填字段和缺失值写法是否仍然成立。如果三件事里只有一件变了,只改那一件;如果两件以上同时变,就把输入规范整体重写,并保留旧规范作为回退。具体工具支持哪些格式、当前是否仍接受旧格式,需要以你实际使用的工具说明为准,不要根据旧经验直接假设。