为什么字段映射是归集的前置工作

很多团队做数据归集,第一步就打开清洗工具开始写规则,结果规则越写越多,越写越乱。问题往往不在清洗本身,而在于没有先回答一个更基础的问题:两个系统里叫法不同的字段,到底是不是同一个东西。星空在服务企业客户的过程中发现,字段映射表缺失或过期,是归集返工最常见的原因之一。

字段映射说的是“源系统字段”和“目标字段”之间的对应关系。它看起来只是一张两列的表格,实际承担的是口径约定的角色。销售系统里的“成交金额”和财务系统里的“确认收入”,名字接近但含义不同;客户表里的“客户编号”和订单表里的“下单主体ID”,取值格式可能完全不一样。这些关系不写清楚,后面的校验规则就无从谈起。

所以更稳妥的顺序是:先梳理映射,再定义校验,最后执行清洗。星空建议把映射表当作归集工程的“对账底稿”,它是可以反复查阅、逐条追溯的。

一张可用的映射表该有哪些列

映射表不需要做得很复杂,但关键列不能省。下面这几列是星空在数据管理实践中总结出的最小集合:

  • 源系统名称与源字段名:写清楚数据从哪来,避免同名不同源。
  • 目标字段名:归集后统一使用的字段名称。
  • 映射类型:一对一、一对多、多对一、需要转换,四种类型分开标注。
  • 转换说明:涉及格式统一、单位换算、枚举值替换的,把规则写在这一列。
  • 冲突标记:源系统之间取值不一致时,记录以谁为准、如何判定。
  • 维护人与变更记录:谁改的、为什么改,留痕比口头约定可靠。

其中“映射类型”这一列经常被忽略,但它决定了后续工作量。一对一的字段可以直接搬;多对一的字段要先合并再归集;需要转换的字段则要单独写校验。星空在梳理时会把这一列作为优先级排序的依据,先处理转换类字段,往往能提前暴露大部分口径分歧。

冲突不可怕,怕的是没有记录

实际归集中,源系统之间取值冲突几乎无法避免。比如客户等级,销售系统按近一年成交额划分,客服系统按服务频次划分,同一客户在两个系统里等级不同。这类冲突不是错误,而是两套业务逻辑的自然结果。

处理方式不是强行统一,而是在映射表里把冲突写明白:两个字段各自的定义是什么、归集时采用哪一个、另一个是否保留为辅助字段。星空在项目里通常建议保留原始字段作为参考列,这样后续业务方质疑数据时,能快速回溯到源头,而不是重新翻系统。

另一个常见问题是映射表版本混乱。有人改了转换规则没同步,有人拿旧版本对照新系统。解决办法很朴素:映射表纳入版本管理,每次变更记录变更原因,归集任务启动前先确认使用的是最新版本。星空在数据管理服务中会把映射表与归集任务绑定,避免“表是新的、规则是旧的”这种错位。

把映射表用起来,而不是供起来

映射表做完就锁进文件夹,是另一种浪费。它至少有三个持续用途:一是作为校验规则的输入,转换类字段直接对应校验项;二是作为新人上手材料,比看系统文档快得多;三是作为口径争议的仲裁依据,业务方对数字有疑问时,先看映射表怎么定义的。

星空建议每个季度对映射表做一次轻量复核,重点看新增系统、字段改名、业务规则调整这三类变化。归集不是一次性工程,映射表也不该是一次性文档。把这张底稿维护好,数据清洗和校验才有稳定的参照,口径不一致的困扰也会少很多。