先给结论:不要按“新旧字段一一对应”决定保留项,而要先按字段在业务动作中的不可替代性分层。能由其他字段推导、能延迟补录、或只服务历史展示的字段,优先放弃;参与身份识别、金额计算、权限判断和对外承诺的字段,即使残缺也要保留并标记来源。下面用一个假设情境把决策过程走完。
假设某企业把旧客户管理系统迁到新网站后台。旧库有 38 个客户字段,新库只设计了 22 个。小样本试迁时,两个系统的字段看起来能对上;规模化后却出现三类例外:同一手机号对应多个旧客户编号、部分订单的归属客户已被删除、旧备注里混着跟进记录和发票信息。此时“全部保留”会让新库继续背历史包袱,“只留新库字段”又会丢掉对账和客服需要的线索。决策目标不是字段数量最少,而是迁移后关键业务动作不中断。
对每个无法直接迁入的字段,依次问四个问题,答案决定它进入哪一层。
这四问的顺序不能颠倒。先问业务动作,再问可推导性,可以避免把“字段看起来很全”误当成“字段必须保留”。
分层之后,处理方式才有可执行的区别:
migrated_status=partial,让后续流程能识别。这里的关键动作是:先给每个例外字段指定层级和责任人,再开始写迁移脚本。假设某团队跳过这一步,直接按字段名匹配迁移,结果是把“旧备注”整段塞进新库的“客户偏好”字段,客服看到的内容和字段含义不符,后续筛选全部失真。反过来,先分层再迁移,脚本会多出一个归档写入步骤,但客服查询历史记录时仍能定位到原备注,新库的筛选字段也不会被污染。
小样本成立、规模化后失败,常见原因不是数据变脏了,而是小样本恰好避开了边界情况。可以用一组可区分的证据判断:
需要提醒的是,迁移后某个字段的请求量或抓取量归零,不能单独证明放弃它是正确的。它也可能只是新流程还没有用到该字段,或者查询入口尚未开放。判断保留项是否合理,要看关键业务动作能否走通,而不是看某个统计数字的变化。
把上面的判断收拢成可执行的顺序:先列出无法直接迁入的字段清单;再按四个判定问题给每个字段标注必保、归档或放弃;然后为必保层的残缺字段写迁移状态标记和补录触发条件;最后才写迁移脚本并做一轮小规模验证。验证时重点看必保层字段是否导致流程中断,而不是看字段总数是否与原库一致。如果验证发现某个归档字段其实参与了新流程,就把它提升到必保层,同时更新分层记录。这样每一轮例外都会收敛到规则里,而不是变成一次次的临时修补。