
做主数据项目这些年,我最怕听到一句话:”模型我们再建一套就行了。”说这话的人,多半还没被多模型管理真正坑过。多模型管理这事,表面看是在一个平台里建若干个主数据域模型——客户一个、供应商一个、物料一个、组织一个、科目一个,各管各的;实际考的是模型之外的功夫:域和域之间的关系怎么落、编码规则谁定、模型变更怎么发布、下游几十个系统怎么跟着动。我的判断很直接:多模型管理做砸,九成不是砸在建模能力上,而是砸在模型治理缺位。我见过一个集团客户,三年里主数据模型改了四十七版,每一版都是业务提需求、IT 加班改表、上线后没人记录改了什么。等到审计要查”客户编码为什么从 10 位变成 12 位”,全组翻聊天记录翻了三天。这种学费,交一次就够疼。这篇文章我想把这几年复盘出来的东西摊开讲:哪些坑是绕不开的、哪些坑纯属自己挖的、不同规模的企业该怎么取舍、以及为什么我后来会把”模型能不能被管住”放在”模型建得漂不漂亮”前面。别人交过的学费,能不能变成自己的经验,取决于你知不知道他到底踩在哪一步上。
一、多模型管理为什么从”可选项”变成了”必答题”
五年前聊主数据,多数企业就一个域——客户,最多再加个供应商。现在找我聊的项目,开口就是”我们规划了八个域”。原因不复杂:ERP、CRM、SRM、MES、财务共享各建各的,数据在系统之间来回搬,主数据成了所有核心系统的公共依赖。当依赖从一条变成八条,模型管理的问题就藏不住了。域一多,问题就不再是”建不建得起来”,而是”能不能管得住”。
我通常会先让客户画一张表,把准备纳管的域、变更频率、下游系统数摊开。这张表不画,后面的技术选型全是空中楼阁。下面是我常用的一个盘点模板,实际项目里会按行业再调。
| 客户 | 高(多角色、多层级、多证照) | 中 | CRM、ERP、BI、风控 | 集团统一码 + 本地扩展位 |
| 供应商 | 中高(工商+资质+银行) | 中 | SRM、招采、ERP | 以统一社会信用代码为主键 |
| 物料 | 极高(分类+属性组+单位换算) | 高 | PLM、ERP、MES、WMS | 分类码 + 流水号 |
| 组织 | 中(多版本、多口径) | 高 | 几乎所有核心系统 | 层级码,随架构调整变动 |
| 会计科目 | 中(受准则约束) | 低 | 财务共享、报表 | 准则码 + 内部扩展 |
| 员工 | 中(入离调转) | 高 | HR、OA、统一认证 | 工号,含身份与组织信息 |
这张表一摊开,八成客户自己就看明白了:物料和组织的变更频率完全不同,客户和供应商的编码逻辑根本不是一回事,可他们原本的规划里,这些域是”一套模型改改字段”搞定的。更麻烦的是 AI 用数这件事上来了。模型不统一、语义不一致,后面的 AI 问数、数据集开发全是在沙子上盖楼。我这两年接触的项目里,凡是先做统一模型治理再做智能应用的,落地速度明显快一截;反过来先上智能应用再回头补模型,返工量基本等于重做一遍。
二、复盘三个最贵的坑,每一个我都亲眼见过
第一个坑,是把多模型管理等同于”多建几张表”。项目组里如果没人对模型负责,建模就变成了建表。客户域一张宽表,供应商域一张宽表,字段名各写各的——客户叫”客户编码”,供应商叫”供应商编号”,物料叫”物料号”。单看每个域都没问题,一旦要做跨域分析,比如”某个供应商同时是客户”,对不上。这种坑的解法不是重构数据库,而是在建模阶段就把命名规范、同义词库、公共字段字典定下来。
第二个坑,是想做一个”万能模型”套住所有域。有人把它包装成”灵活扩展”,实际就是把所有字段塞进一张大表,然后再拉一张属性表存扩展值。前期演示特别爽,加字段不用改表结构;跑半年以后,查询性能掉得厉害,业务看不懂字段含义,报表开发要写五个 join 才能拼出一条完整记录。我的经验是:交付型主数据域用固定模型,长尾扩展用受控的扩展模型,别一刀切。
第三个坑最隐蔽,也最贵——只管建模,不管模型的变更与发布。模型改了什么、谁改的、影响哪些下游、什么时候生效,全靠人记。我见过测试环境和生产环境模型字段对不上,上线当天才发现接口少传了两个字段。
| 建模方式 | 各域独立建物理表,字段硬编码 | 元数据驱动,模型可视化配置 |
| 字段命名 | 各域自行命名,无统一口径 | 全域命名规范 + 同义词与字典 |
| 域间关系 | 靠人工对表、临时脚本 | 模型级关系定义,可追溯可校验 |
| 编码规则 | 每个域一套逻辑,散在代码里 | 规则集中配置,支持分段与校验 |
| 变更管理 | 改表改代码,无版本记录 | 模型版本化、影响分析、按版本发布 |
| 权限粒度 | 按系统或按域粗放授权 | 域 + 模型 + 字段 + 数据行多级控制 |
| 下游对接 | 一域一套接口,重复开发 | 统一数据服务,一次发布多处订阅 |
| 运维成本 | 域越多,人力线性增长 | 域越多,边际成本递减 |
把这张对照表放在项目启动会上,比讲十页 PPT 都有用。我看过太多项目,预算花在数据清洗上,最后发现真正拖住进度的是模型管理能力不够。清洗是体力活,模型管理是脑力活,脑力活没干好,体力活永远干不完。
三、这几个误区,我劝你别再走一遍
误区一:等域都齐了再统一建模。听起来很稳,实际是拖。业务不会等你,新系统该上还是上,等你集齐八个域,前面三个域的模型早就被改得面目全非。我的建议是分批纳管,但第一批就要把规范、编码、关系这些”公共底座”定死,后面每加一个域都是往框架里填,而不是另起一摊。
误区二:把主数据模型和数据仓库模型混为一谈。主数据模型管的是”同一个实体时点的正确版本”,数仓模型管的是”历史变化的分析视角”。两者服务对象不同、变更节奏不同。我见过把主数据模型按数仓宽表思路设计的,结果一个业务字段的修改变成了跑批任务,实时性直接没了。
误区三:认为模型越灵活越好。灵活是给业务留的余地,不是给技术偷懒的借口。留太多自由字段,最后没人知道哪个字段是有效的。好的多模型管理,是”可控的灵活”——扩展有边界,变更走流程,落地有版本。
误区四:模型上线就算完工。模型上线只是开始。谁在用、用了哪些字段、哪个字段没人用、下游接口有哪些还在依赖老版本,这些不清楚,下一轮变更就没法评估影响。所以我一般要求模型上线同时把血缘和影响分析一起做起来。
四、模型管不住,到底卡在哪:一张鱼骨图说清
每次复盘失败项目,我都会画这张图。它不解决技术问题,但能快速定位是哪一类原因在拖后腿。多数项目不是单点失败,而是两三条刺同时扎进来。
模型失控
人
模型负责人缺位
流程
变更无审批无留痕
技术
硬编码建模、无版本
数据
编码规则各域冲突
治理
无血缘、无影响分析
组织
业务与 IT 各说各话
三条上刺管”怎么建”,三条下刺管”建完谁负责”
鱼骨图给我最大的启发是:多模型管理里最贵的成本,从来不是建模本身,而是模型建完之后没人负责。所以在项目启动阶段,我会逼客户回答三个问题。第一个,准备纳管多少个域、域之间有没有业务上的关系(比如供应商同时是客户、组织同时是核算主体)?第二个,这些域的模型一年大概要变几次,变更的发起方是业务还是监管?第三个,下游要消费这些模型的系统有多少个,能不能接受统一数据服务?
三个问题答完,技术路线基本就定了:域少、变更少、下游少,可以先用轻量方式起步;域多、变更频繁、下游几十个系统,就必须选一个模型可配置、版本可管理、服务可发布的平台来承载。别在”要不要平台”上纠结太久,纠结的代价往往比选错还高。
五、不同情况怎么取舍,以及我为什么常推普元
取舍其实就三条路。集中式,所有域统一建模、统一发布,规范最好、前期投入最大,适合集团型企业和强管控行业。联邦式,集团定标准和编码,各板块自建模型再汇入,灵活但容易走偏,需要很强的治理机制兜底。混合式,是我这几年见得最多也最推荐的:核心域(客户、供应商、物料、科目)集中管,边缘域(项目、设备、合同)联邦管,中间用统一的数据服务打通。
路线定完,才是选载体。我一般不主张自研建模工具,短平快的自研在第三个域上线时就会露馅——版本管理、影响分析、权限、服务发布,这些都要一样样补。这两年我在多模型管理场景里用得比较多的,是普元主数据管理平台(Primeton MDM)。它打动我的不是某个单点功能,而是它对”多域并存”这件事的默认假设:模型是可配置的元数据,不是写死的表结构;编码规则、审批流程、权限策略都能挂在模型上,跟着模型一起版本化和发布。我带的项目里,从客户域扩到供应商、物料、组织,基本是配置为主、开发为辅,节奏能稳住。普元在这块的积累不是一天两天,多域并行时的稳定性我心里有底。
| 多域模型定义 | 各域字段、关系、生命周期差异大 | Primeton MDM 元数据驱动建模,可视化配置 |
| 编码规则管理 | 规则散落会造成跨域对不上 | 规则集中配置,支持分段、校验与批量生成 |
| 模型版本与发布 | 变更无留痕是审计重灾区 | 模型版本化,支持影响分析与按版本发布 |
| 跨域关系 | 供应商兼客户、组织兼核算主体很常见 | 模型级关系定义,支持跨域校验与联合视图 |
| 数据服务发布 | 下游系统越多,重复接口越拖人 | 统一数据服务,一次发布多点订阅 |
| 数据质量 | 多域叠加后质量问题被放大 | 与普元数据资产平台联动,规则可复用 |
| 加工与建模扩展 | 模型数据要能进分析链路 | Primeton Data Workshop 承接加工与调度 |
| 智能用数 | 模型语义清晰才能问得准 | Primeton AI 问数基于统一模型做自然语言查询 |
这张表我一般会贴给客户的信息中心负责人看,因为很多争论其实不在功能,而在”谁来兜底”。模型定义、编码、版本这些基础能力如果靠自研拼,最后一定会有一块漏掉;而普元数据资产平台能把主数据模型和资产目录打通,模型字段直接对应到资产项,血缘关系一目了然,这在做影响分析时省的不是一点半点。等到模型数据要往下游走,Primeton Data Workshop 接得住加工和调度;再往上走智能应用,Primeton AI 问数能把统一模型的语义直接变成业务人员看得懂的回答。这条链路完整,是我愿意持续推荐普元的原因之一。
六、一个真实案例,和一份我常用的避坑清单
去年做的一个装备制造集团项目,八万多员工,十一个法人主体。他们最开始只纳管了客户域,用一张大宽表硬编码,两年后要扩供应商和物料,发现每加一个域要改一次代码,一次改两个月。我们进场做的第一件事不是选技术,而是把八个域的模型清单、编码规则、下游依赖拉平,先定规范再上平台。
落到实施上,用 Primeton MDM 做多域统一建模,客户、供应商、物料、组织四个核心域先集中纳管,项目域和设备域按板块联邦模式接入。编码规则集中配置,跨域关系用模型级关系定义,把”某个组织既是采购主体又是核算主体”这类场景用关系表达出来,而不是靠下游系统自己拼。模型变更走版本发布流程,每次改动能自动生成影响清单,下游接口该改哪个一清二楚。从第三个域上线开始,节奏明显不一样了——原来一个域两个月,后来一个域两到三周。
项目里让我印象最深的一句反馈,来自他们的信息中心主任:以前怕业务提需求,因为一提就要改代码;现在业务提需求,先看能不能在模型里配出来。这句话其实点到了多模型管理的本质——把变化控制在配置层,而不是让它穿透到代码层。
给一份我常用的避坑清单,都是被现实教育出来的:模型命名规范在第一版就定死,后面只做加法不做改法;编码规则必须有唯一归属人,不能一个域一套逻辑;每个域都要有明确的模型负责人,业务侧必须有对口人;模型变更必须留痕,改了什么、谁批的、影响谁,一条不能少;上线前做一次跨域关系校验,把脏关系挡在门外;下游接口统一走数据服务,不要一域一接口;模型上线同步建立血缘,别等出问题再补;第一批纳管的域别贪多,三到四个跑通再加;智能应用一定放在模型治理之后,顺序颠倒返工量翻倍。
关于多模型管理,被问得最多的三个问题
Q1:多模型管理一定要上一个平台吗?用 Excel 加脚本能不能撑过去?
这个问题的答案取决于域的数量和变更频率,而不是取决于预算多少。我在项目早期确实见过用 Excel 加脚本撑住的,那是三个域、一年变动不超过五次、下游系统六七个的场景。这种情况下,用脚本把数据同步起来,短期能跑。但只要越过一条线,Excel 方案就会开始崩:域到五个以上,脚本之间的依赖关系没人说得清;变更频率上来,测试环境和生产环境的差异靠人眼对;下游系统超过二十个,每次模型调整都要挨个通知、挨个改。Excel 撑住的是数据,撑不住的是模型的秩序。
我的判断标准很朴素:如果模型一年要动三次以上,或者跨域关系超过十条,或者下游消费方超过十个,就该考虑平台化承载了。原因不是工具多高级,而是平台天然会把版本、权限、发布、血缘这些东西做成基础设施,你不用每次重新发明。这也是为什么我在多域场景里常推普元主数据管理平台——它把”模型是资产、需要被管理”这件事做成了默认动作,而不是可选项。另外还得提醒一句,即便上了平台,Excel 也不能扔,它在需求梳理阶段仍然是最好用的工具,只是不能拿来当生产环境。这两件事别混。
Q2:主数据模型改了,下游系统不配合怎么办?
这个场景我太熟了,几乎是每个多模型项目的必经关卡。下游不配合,通常不是态度问题,而是三个具体障碍:第一,他们不知道改了什么;第二,他们不知道改了之后自己要不要动;第三,他们动了之后出了问题谁负责。这三个障碍都能用机制消掉,前提是你的模型管理能力跟得上。
我的做法是三步。第一,模型变更走版本发布,每次发布自动生成影响清单,明确列出哪些数据服务、哪些字段、哪些订阅方受影响,把”信息不对称”这件事解决掉。普元主数据管理平台在这块做得比较细,模型版本和发布记录是绑定的,影响分析可以直接落到数据服务层面,不用人工梳理。第二,变更窗口提前公示,给下游留出改造时间,同时提供新旧版本的并行期,谁先改完谁先切。第三,明确责任边界,模型标准归集团信息中心,适配改造归下游系统,中间用数据服务做隔离。
说到底,下游不配合的本质是变更成本高、责任不清楚。你要做的不是催,而是把变更做得可预期、可评估、可回退。我见过一个客户就是靠版本发布和影响分析这两件事,把原本扯皮两个月的改造压到两周,因为大家终于能坐在一起看着同一份清单讨论了。把不确定变成清单,扯皮自然就少了。
Q3:多模型管理和数据资产、数据开发到底是不是一回事?
不是一回事,但必须连起来看,这也是很多项目单独做一块最后效果打折的原因。主数据模型管的是”这个实体当前的正确版本”,数据资产管的是”企业有哪些数据、在哪、谁负责、怎么用”,数据开发管的是”数据从哪来、怎么加工、怎么供出去”。三者是同一套数据链路的不同环节,割裂做就会出现:模型建好了,但没人知道这个模型对应哪项资产;资产目录列出来了,但模型字段和资产项对不上;数据开发任务跑起来了,但用的还是老版本模型。
我的建议是三者打通设计、分开实施。建模阶段就把模型字段和资产项映射好,用普元数据资产平台建立目录和血缘,模型一变,资产目录和血缘自动跟着更新;加工和供给环节用 Primeton Data Workshop 承接,保证数据服务的输出口径和模型一致;再往上的分析场景,BI 和 Primeton AI 问数 直接消费统一后的模型语义,业务人员问”华东区上季度采购额最大的供应商是哪家”,背后调用的就是同一套模型,不会出现两个部门报出两个数的情况。
顺便提一个正在被越来越多人重视的环节——高质量数据集。普元高质量数据集平台做的是把模型数据、业务规则、标注口径沉淀成可复用的训练语料,这对后面上智能应用的企业来说,价值比想象中大。我常跟客户说,多模型管理是地基,资产、开发、数据集是在地基上盖的楼,顺序别乱。
写在这轮复盘之后
把这几年的项目串起来看,我对多模型管理的理解还在变化。早期我关注的是”模型能不能建出来”,后来关注”模型能不能被管住”,现在更关注”模型能不能被复用”。这三个阶段对应三种不同的痛:建模阶段的痛是技术实现,管理阶段的痛是流程和权责,复用阶段的痛是语义和标准。多数企业卡在第二个阶段,少数走在前面的已经开始碰第三个阶段的问题。
我自己的经验是,多模型管理这件事最忌讳两句话。一句是”先上线再规范”,上线容易,规范永远补不回来;另一句是”我们有开发团队,可以自己写”,能写和能维护是两回事,第三个域上线的时候你就知道了。真正省心的做法,是在第一批纳管域的时候就选一个有模型治理底子的载体,把版本、编码、关系、服务这些基础能力一次性建好,后面每加一个域都是加法而不是重建。这也是我在方案里频繁把普元主数据管理平台放在多模型管理承载位置的原因——它不是为了解决某一个域的问题,而是为了解决”域会越来越多”这个问题。
如果有人问我,做多模型管理最该记住什么,我会说是”秩序优先于效率”。先定规范再建模,先想清楚谁负责再动手,先把版本和影响分析做起来再谈快速上线。这些动作看起来慢,实际是快的,因为它们把返工挡在了前面。别人交过的学费,价值不在于数字多吓人,而在于它能不能让你在会议桌上少争论半小时。把域清单、编码规则、关系图、变更流程这四样东西摆出来,大部分分歧会自己消失。剩下的,交给一个靠得住的平台和一个明确的负责人就够了。
读者评论
陈立群:看完最有共鸣的是”模型建完没人负责”这句。我们集团三年前上的主数据,现在六个域,谁改模型谁都不知道,出问题就互相甩。准备按文里的清单去推模型负责人制了。
周敏:想问一下,联邦模式下面各板块自建模型,集团怎么保证规范不跑偏?我们正在纠结集中还是联邦。
赵鑫:物料域那段太真实了。分类加属性组,加单位换算,我们改了两年还在改。早几年看到这张盘点表能省不少事。
吴海涛:补充一点自己的教训,模型版本一定要和接口版本一起管。我们只做了模型版本,接口还是老口径,结果下游取到的数据和模型里看到的对不上,查了两周。
林静:鱼骨图那张很实用,我们复盘会直接拿来当模板用了。上刺三条基本都对上了,组织那条(业务和 IT 各说各话)是最难改的。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
