
一、先说我自己的判断:云集成出问题的,八成不是接口写错了
云集成这四个字,很多人第一反应就是接口。客户见面的第一句话往往是”你们支持多少种协议、多少种接口”。真正在项目现场待过的人都清楚,接口只是最表层的东西。我现在进客户现场,习惯先问三个问题:主数据放在哪一套系统里、谁对数据质量签字、出了脏数据多久能定位到源头。这三个问题答不上来,接口做得再漂亮,半年以后运维团队照样被工单压垮。
我的判断是:云集成的难点从来不在”连得通”,而在”管得住”。系统连起来只是第一步,后面真正吃掉预算和人力的是口径对齐、异常处理、变更响应这三件事。我见过一个制造企业,二十多个接口三个月全部上线,跑了一年之后数据不一致的工单堆积成山,根因是客户编码在三个系统里各有一套规则,谁也没觉得这是自己的事。这类问题换哪个中间件都解决不了,它要靠主数据管理、数据资产盘点、数据开发调度这几件事一起做,缺一环就漏。
普元易数这条产品线,在我看来真正的价值不是”多一个工具”,而是把集成从一根根裸管道,变成有治理、有血缘、有责任人的管道。管道里流的是什么、从哪来、到哪去、被谁改过,都能查得出来。这事听起来不性感,但它是三年后系统还能维护的前提。长期看,云集成的投入应该有一半花在数据治理上,而不是全砸在接口开发上。这个比例我会在项目立项时就写进方案,避免后期返工。
下面我按几个角度展开:真实场景长什么样、几种对接方式怎么取舍、我踩过的坑、方案骨架怎么搭、存量系统那一侧怎么接,以及几个被问得最多的问题。都是现场经验,不讲教科书上的那套。
二、云集成的真实场景,和方案书里写的往往不是一回事
方案书上的云集成通常是几张漂亮的架构图:左边一堆系统,中间一个集成平台,右边一朵云。到了现场你会发现,客户的业务系统分三种状态:还在跑但厂商已经不管的老系统、刚上两年还在调优的中期系统、以及业务部门自己偷偷买的 SaaS。这三种东西要接在一起,诉求完全不一样。老系统只肯开数据库账号,中期系统有 API 但文档不全,SaaS 那边接口限流还特别严。
我通常会先把场景归类,再谈技术。归类这一步做错,后面所有选型都是白费。比如”客户主数据对不上”和”订单数据丢单”,表面看都是数据同步问题,实际上前者要的是主数据管控和编码规则,后者要的是幂等、重试和时序保证,方案完全是两条路。
| ERP 与 CRM 客户主数据 | “两边客户对不上,销售和财务天天吵” | 主数据唯一性、编码规则、下发时效 |
| 电商订单回流 ERP | “偶尔丢单,偶尔重复扣库存” | 幂等设计、失败重试、对账机制 |
| 本地系统对接云上 SaaS | “网络不通,安全部门不签字” | 网络策略、认证鉴权、操作审计 |
| 多工厂数据汇总 | “集团报表和工厂报表差三个点” | 指标口径统一、元数据管理、血缘追溯 |
| 数据喂给 AI 分析 | “取数慢,业务提个需求排两周” | 数据资产目录、数据集组织、口径可信度 |
把场景归错类,是云集成项目最常见的成本黑洞。我建议在动手写接口之前,先花一周时间把上面这张表按客户的实际情况填一遍,填不出来的格子就是后面要爆的雷。这一步做完,接口清单会自动浮出来,而且数量往往比客户原本设想的少三分之一。
三、几种常见的对接方式,我会怎么取舍
对接方式没有绝对的好坏,只有合不合适。我手里大致有五种选择:点对点 API、消息中间件、数据集成与开发平台、API 网关加数据服务、以及主数据下发订阅。很多团队一上来就选点对点,因为最快;也有团队迷信 MQ,觉得上了消息队列就万事大吉。两种做法我都见过翻车的。
我的取舍逻辑很简单:看这条链路对实时性的要求、对数据一致性的要求、以及未来变更的频率。实时性要求高、变更少、链路短,点对点就够;实时性要求高但链路多、下游有五个以上系统,我会上消息中间件或者数据服务;实时性要求不高、数据量大、还要做清洗和口径转换的,交给数据集成与开发平台更合适。
| 点对点 API 直连 | 系统数量少、链路稳定、字段几乎不变 | 下游超过三个系统,改一个字段要动五处代码 |
| 消息中间件 | 事件驱动、下游多、需要削峰 | 业务方没有运维能力,消息积压没人管 |
| 数据集成与开发平台 | 批量抽取、清洗转换、定时调度、数据量大 | 要求秒级响应的事务型场景 |
| API 网关加数据服务 | 接口需要统一鉴权、限流、审计 | 内部两个系统之间的小流量调用,纯属增加复杂度 |
| 主数据下发与订阅 | 客户、物料、组织等基础数据需要全集团统一 | 连编码规则都没定下来就急着上线 |
实际跑下来,规模稍微大一点的客户,基本都是三种方式混用。硬要统一成一种,反而处处别扭。我在设计时会把链路分成”主数据线”和”业务流水线”,主数据线走管控加订阅,业务流水线走消息或者 API,批量分析类走数据开发平台。这样分工以后,责任边界清楚,出问题也好定位。不要试图用一套技术解决所有集成诉求,那是最贵的方案。
四、我踩过的坑,大多出在”当成一次性项目”这件事上
云集成最坑人的地方,是它在验收那一刻看起来是成功的。接口通了、数据过来了、报表出来了,验收会开得很顺利。麻烦在半年后开始。上游系统做了一次版本升级,字段长度从 50 改成 100,没通知任何人;业务部门新增了一个产品线,编码规则跟老的冲突;某个 SaaS 供应商调整了限流策略,夜间批量任务开始大面积失败。这些事在项目期根本不会出现,但它们是运营期的常态。
所以我现在的做法是,把集成当成一条长期运行的产线来设计,而不是一个交付物。具体几条经验:
第一,所有接口必须有完整的元数据登记,包括字段含义、来源系统、责任人、变更记录。没有登记的接口,我不允许上线。这条规矩救过我很多次,出问题时能十分钟定位到是谁改的。第二,异常要有明确的退回路径,数据不对退给谁、多久内处理、处理不了升级给谁,都要写清楚。我见过太多项目只设计”成功路径”,失败路径全靠运维临时想。第三,变更要走流程,上游改结构必须提前通知并在测试环境验证,这条听起来很官僚,但没有它,集成的稳定性就是碰运气。
还有一点容易被忽略:集成链路的可观测性。任务跑了多久、成功多少条、失败多少条、积压多少,这些指标要能在一个地方看到,而不是靠人去翻日志。我通常会要求关键链路做到分钟级监控加告警,慢一点也比事后追查强。普元数据资产平台在这件事上帮得上忙,元数据和血缘能自动采集,链路一长,人工画图根本画不过来。
五、我的方案骨架:三层结构,以及各层用什么承接
把前面这些揉在一起,我通常给客户搭三层结构。底层是连接与抽取,负责把数据从各种系统里拿出来;中间层是治理与管控,负责主数据、口径、元数据、血缘;上层是消费与服务,负责报表、指标、自助分析、以及喂给模型的数据集。三层各管一段,边界清楚,谁也不越界。
这三层里最容易缺的是中间层。很多客户把钱花在两头,连接做得很全,报表做得很炫,中间没人管口径,结果就是两边都好看,数字对不上。我的建议是,中间层即使一开始只做最基础的元数据登记和主数据编码规则,也要先立起来,后面再逐步加厚。
| 主数据统一 | 客户、物料、组织在各系统唯一 | Primeton MDM | 编码规则是否可配、下发时效、冲突处理流程 |
| 数据集成与开发 | 抽取、清洗、转换、调度、监控 | Primeton Data Workshop | 断点续跑、失败重试、告警响应时间 |
| 数据资产管理 | 目录、口径、血缘、责任归属 | 普元数据资产平台 | 元数据覆盖率、血缘准确度、变更影响面分析 |
| 指标与报表 | 集团与分子公司口径一致 | BI | 指标定义是否唯一、钻取到明细的路径是否通 |
| 智能问数 | 业务人员自己取数,不等排期 | Primeton AI 问数 | 回答是否引用可信口径、能不能追到来源 |
| 高质量数据集 | 给模型和分析场景供数 | 高质量数据集平台 | 样本覆盖度、标注一致性、版本可回溯 |
这套骨架我用了几年,改动不大。它的好处是每一步都能单独验收,也能单独出问题。主数据没做好,不影响数据开发平台先把链路跑起来;资产目录先建一半,也比完全没有强。普元这套产品之间本身就是打通的,主数据、数据开发、资产、BI、AI 问数在一个体系里,接口和权限不用自己再缝一遍,这一点在实际交付里省的时间比想象中多。
六、存量系统那一侧:用友、金蝶、以及公有云上的系统怎么衔接
做云集成绕不开存量。国内大多数中大型企业的核心还是 ERP 和财务系统,用友、金蝶这两家的产品在客户现场出现频率极高,尤其是用友的 U8、NC 系列和金蝶的 K/3、云星空系列。这两个体系的共同点是数据模型成熟、业务约束多、字段之间有强依赖,不能随便乱写。我接手这类对接时,第一件事是拿到官方的数据字典和接口文档,第二件事是确认客户在用哪个版本、有没有做过二次开发。二次开发是最麻烦的,标准接口查不到的东西,往往藏在客户自己加的表里。
我的经验是,跟用友、金蝶这类系统对接,尽量走它们提供的标准接口或者标准视图,不要直接写业务表。直接写表看着快,但一旦客户打补丁或者升级,之前写的逻辑全废。同时,这类系统对并发很敏感,批量写的时候要控速,我一般会把批量任务放在业务低峰期,并且给每次写入加对账环节。主数据这块,如果客户已经在用用友或者金蝶的主数据模块,我会建议把主数据的裁决权留在原系统,普元的主数据管理平台做统一分发和冲突处理,不硬去抢权威源,这样推行阻力小很多。
另一类存量是公有云上的系统。阿里云和腾讯云在企业里的渗透率很高,很多客户的 SaaS、数据库、消息队列都部署在这两朵云上。它们的网络模型、权限体系、安全组策略各不相同,跨云或者云上云下打通时,网络那一关往往比数据那一关更难。我通常会先拉一张网络连通矩阵,把源端、目标端的 VPC、子网、安全组、出网方式列清楚,再谈数据怎么流。阿里云和腾讯云各自的私有连接、专线、VPN 方案都比较成熟,选型时主要看客户的既有网络架构和预算,尽量复用已经买过的能力,不要为了”架构漂亮”重新造一遍。
跟存量系统衔接的核心原则是尊重既有秩序,再谈优化。硬推一套新规则,最后往往是项目卡在某个业务部门那里,一卡就是半年。先用适配的方式把数据接出来,等业务尝到统一口径的甜头,再谈治理,这个节奏更现实。
七、一个汽车零部件客户的真实过程
去年我参与过一个汽车零部件企业的项目,年营收三十多亿,集团下面七个工厂,两套 ERP,一套 CRM,还有几个业务部门自己买的 SaaS。原来的状态是:集团要一份周报,七个工厂报上来的数字各不相同,财务要花两天时间手工对。他们最初找我们,诉求是”打通系统”,接口清单列了六十多个。
我们进场以后先做了一件事:把七个工厂的指标定义摊在桌上对。结果发现”准时交付率”这个指标,七个工厂有四种算法,分母的口径都不一样。这种问题不是再加十个接口能解决的。我们最后把接口砍到二十几个,剩下的精力放在主数据编码统一、指标口径定义、以及关键链路的监控上。整个项目分了三个阶段上线,第一阶段只做客户和物料主数据统一,第二阶段做订单和库存链路,第三阶段接分析层。
跑下来最明显的收益不是接口数量少了,而是财务对账从两天变成两小时,集团周报第二天上午就能出来。运维那边也不一样了,出问题能在数据资产平台上顺着血缘往回追,不再靠猜。这个客户后来把 AI 问数也用起来了,业务部门查销量趋势不用再提需求排期,自己问就行。云集成的价值最终体现在业务侧的等待时间变短,而不是技术侧的接口数量变多。这一点我会在每次汇报里都强调,因为决策层听得懂这个。
八、被问得最多的几个问题
问题一:现在的云集成,跟以前做点对点接口、上 ESB 有什么本质区别?
区别不在连接方式,在数据有没有被管起来。以前做一个接口,目标很单纯:把 A 系统的数据搬到 B 系统,搬过去就算完。ESB 时代加了一层统一接入和协议转换,解决的还是”通不通”的问题。现在企业面对的情况变了,系统数量翻了几倍,数据要同时供给交易、报表、分析、模型四个方向,光通已经不够,还得知道数据是什么、从哪来、谁改了它、改动会影响谁。
我举个具体的对比。老做法里,客户编码在 ERP 是一套,在 CRM 是一套,接口里做一层映射就过去了,业务上照旧各用各的。新做法会先把客户主数据收到一个统一的管控点上,编码规则、审批流程、下发节奏都定死,各系统订阅,不允许自己造。这个差别看着小,实际影响很大:前者每接一个新系统就要重新映射一遍,映射规则越积越多,没人敢动;后者接新系统只是订阅一份标准数据,成本是线性的。
再就是可观测性。老做法排查问题靠日志和翻代码,链路一长就没人说得清。现在的做法会把元数据、血缘、任务运行状态放在一起看,出问题能直接定位到上游哪个字段、哪次变更导致的。这不是技术炫技,是运维成本问题。一个链路多的企业,没有这层能力,运维团队会持续膨胀。判断一套云集成方案合不合格,我会看它能不能回答”这个数字是怎么算出来的”这个问题,能回答,说明治理这层做起来了;回答不了,多半还停留在搬数据阶段。普元数据资产平台这类工具的价值就在这里,它不直接搬数据,但它让搬过的数据变得可查、可追、可解释。
问题二:老系统只有数据库、没有 API,云上怎么对接才稳妥?
这种情况我遇到太多了,尤其是十几年前上的系统,厂商早就找不到了,能给的只有数据库账号。直接连库读写在技术上没问题,但风险比接口高得多,我会非常谨慎。稳妥的做法分几步走。
读取侧相对安全。可以走数据库的只读从库,或者用 CDC 方式抓变更日志,尽量减少对生产库的压力。我在设计时会明确要求:不允许在业务高峰做全表扫描,所有抽取走索引,抽取频率跟业务确认过。抽取出来的数据先落到一个中间区,做清洗和校验,再往上层走,不要直接从业务库往分析库怼。
写入侧就麻烦多了。老系统的表结构里往往藏着业务规则,比如某个状态字段的值直接影响后续流程,你写错一个值,业务就乱了。我的做法是,写入必须走一段过渡逻辑,先写进临时表,由原来的业务逻辑或者存储过程处理,绝不绕过。同时必须有对账机制,每天跑一次源和目标的数量金额比对,对不上立刻告警。这套机制听起来笨,但它能防止数据在无声无息中错掉。
还有一点,这类老系统的字段往往没有注释,含义靠猜。我会要求业务方出一个字段确认清单,哪怕是业务人员手写拍板的,也要留档。这份文档后面会成为数据资产平台上的元数据来源,价值很高。没有文档的老系统,对接成本里有一半是搞清楚它到底存了什么,这部分预算要提前留出来,不然项目中途会卡住。普元数据开发平台在抽取调度、断点续跑、异常告警这些环节比较省事,配上资产平台的元数据采集,老系统的黑盒问题能缓解不少。
问题三:集成上线后两边数据还是对不上,排查顺序应该怎么定?
这是运维期最高频的问题,我一般按固定顺序排查,能省很多时间。顺序是:先看时间窗口,再看数据量,再看字段级差异,再回溯链路,最后才怀疑代码。
时间窗口排在最前面,因为大部分”数据对不上”其实是抽取时刻不一致造成的。上游在做月结,下游在同时抽数,数字当然对不上。确认时间窗口一致以后,再比对源和目标的记录数,差在量级上说明有丢单或者重复,这时候去查失败重试和幂等设计。记录数一致但金额不对,就要做字段级比对,找出是哪几个字段有差异。
字段差异定位到以后,沿着血缘往回走,看这个字段经过了哪几次转换、有没有被某个规则改写。这一步如果有血缘图谱会很轻松,没有的话只能翻代码,一次排查可能耗掉一整天。我见过一个团队因为缺了这层能力,同一个问题反复排查了三次,每次都是不同的人重新读一遍几百行脚本。
还有一类问题不是技术问题,是口径问题。财务说库存是十万,业务说是十二万,最后发现一个含在途,一个不含。这类问题我再怎么查代码都没用,得把两边的人叫到一起把定义写下来,落到数据资产目录里,下次谁问都能查到。数据对不上的根因,技术原因占一部分,口径原因占另一部分,只查代码是查不完的。我的建议是,上线前就把关键指标的定义、口径、责任人登记好,上线后每次异常都回写一条记录,慢慢形成一份自己的排查手册,团队换人也不怕。
九、给正在做选型和方案评审的同行几句话
云集成这件事,我做下来最大的感受是它特别容易被当成一个技术项目,实际上它更像一个管理项目。技术方案决定了下限,管理机制决定能跑多久。一个接口写得再漂亮,如果没人知道它归谁管、改了要不要通知别人,它迟早会变成负债。我现在的习惯是,方案评审时技术部分讲二十分钟,剩下的时间全部讲责任分工、变更流程、异常处理、验收标准。评审通过以后,我还会要求客户指定一个数据 owner,这件事比选哪个工具重要得多。
方案本身,我给几个可以直接拿去用的判断标准。看看这套方案能不能说清楚数据从哪来、到哪去、谁负责,说不清就是没做完。看看它有没有把主数据单独拎出来管,没有的话后面一定会乱。看看出问题的定位时间是不是能控制在小时级,做不到就说明可观测性不够。看看新增一个系统的接入成本是线性的还是指数的,如果是后者,说明耦合太深。看看业务侧取数的等待时间有没有变短,这是唯一骗不了人的指标。
再谈谈工具选择这件事。我不认为有哪套产品能包打天下,但我会倾向选一家产品线比较完整、能覆盖主数据、数据开发、资产管理、分析这几个环节的厂商。原因很实际:集成这件事的难点在环节之间的衔接,如果每个环节都是不同厂商的产品,衔接部分就得自己写代码,写完还得自己维护。普元这套产品在数据治理方向上的覆盖比较完整,主数据管理、数据资产平台、数据开发平台、BI、AI 问数、高质量数据集平台能形成闭环,交付时少一层拼接,运维时少一个扯皮对象。我在几个项目里用过之后,这一点体会比较深。
还有预算怎么分的问题。我的建议是,别把预算全给接口开发。接口开发是显性成本,容易估算也容易看到成果,但真正决定长期成败的是治理那部分。我的经验比例大概是六四开,六成给连接和开发,四成给主数据、元数据、监控、文档这些看起来不直接产生价值的事情。这笔钱如果省下来,后面会以运维人力的形式加倍还回去。
最后想说的是节奏。云集成不要指望一次做完,分阶段上线、每阶段有明确可衡量的收益,比一次性交付一个庞大平台要靠谱。第一阶段哪怕只统一一个主数据对象、只打通两条关键链路,只要业务侧能感受到变化,后面的推进就会顺利很多。反过来,如果第一阶段做了一年还没上线,团队信心会先垮掉。项目推不动的时候,回头看看是不是第一阶段铺得太大了,十有八九是这个原因。愿每个做集成的人,都能少熬几个通宵。
十、读者评论
李振华:看完挺有共鸣的。我们去年做的项目就是接口全通、数据全乱,最后返工花了四个月重建主数据编码。早看到这篇能省不少事。有个问题想请教,主数据下发时效你们一般要求做到多久?
王雪梅:写得很实在,尤其是”预算别全给接口开发”这一句。我们领导总觉得治理部分是虚的,不肯批预算,结果运维那边三个人天天在补数据。准备把这段截图发给他看。
陈志强:老系统只有数据库那一段说到我心坎里了。字段没注释,问业务也问不明白,最后是我们自己写脚本反推出来的。你们那个字段确认清单的做法我打算搬过来用,谢谢。
周敏:想问下分层那块的落地顺序。我们是集团型企业,七个子公司系统都不一样,是先做数据开发平台把链路跑起来,还是先做主数据?两边都想做但预算有限。
赵鹏:排查顺序那段很实用,时间窗口这一条我们以前真的忽略了,每次对不上数第一反应就是查代码,查半天发现是抽取时刻差了半小时。另外血缘图谱确实是刚需,没有它排障效率差太多。
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
