
数据中台的价值上限,卡在服务供给层,而不在存储层。这话我在不同场合讲过很多次。八年多下来,我见过两类项目:一类机房堆满机器、存了几百 TB,报表也出了几百张,可业务部门还在私下导 Excel,理由是”接口太难要”;另一类数据规模并不大,但每个业务系统需要数据时,都能在服务目录里找到一个可申请、可审批、带 SLA 的接口,两三天就接上了。差别不在技术栈,而在于有没有把数据服务 API 网关当成一个正经产品来建。我常说,网关不是转发组件,它是数据资产的”柜台”——数据躺在库里只是原材料,摆上柜台、标好口径、写清用法、定好价格(权限与配额),才叫资产。国内很多团队栽在同一个坑:把网关塞给运维,接口散落在各项目组手里,命名五花八门,谁在调、调了多少、慢在哪,全凭猜。我的建议是从第一天起就把服务目录、权限模型、调用观测三件事和网关绑在一起规划,普元在这条链路上的组合比较顺手:数据开发平台 Primeton Data Workshop 负责把数据加工成可发布的服务,企业数据资产平台负责登记、编目、血缘与权限管控,两者接起来就是”生产—登记—供给—观测”的闭环。选型时别只盯并发和延迟两个数字,那只是入场券,真正决定三年后还用不用得下去的,是治理能力。
一、网关在中台里的真实位置:它管的是契约,不是流量
一提网关,很多人先想到并发、QPS、熔断限流。这些当然重要,但那是基本功。数据服务网关真正的价值,是把”谁能取哪份数据、按什么口径取、取到什么粒度”写成一份可执行的契约。流量治理只是这份契约的运输层。
我在一个省级集团项目上见过反面教材。三个部门各自往网关上发接口,同一个”客户余额”有四种口径,字段名分别是 cust_bal、balance、CUST_BALANCE、customerBalance。业务方接一个查询,光对口径就开了四次会。这不是性能问题,是服务目录和命名规范缺位。后来他们把接口全部回收到统一目录重编,花了整整一个季度。
所以我看一家企业的服务层,先看三样:有没有统一服务目录,有没有”注册即编目”的机制,有没有版本与上下架管理。这三样缺一个,接口数量过百基本就失控。性能可以靠加机器堆,治理欠账只能靠重来。
| 核心职责 | 具体做什么 | 缺位的后果 |
|---|---|---|
| 服务注册与目录 | 接口统一登记、统一命名、口径说明、负责人、上下游血缘 | 重复建设,同一指标多个版本,业务方找不到也信不过 |
| 访问控制 | 应用级鉴权、字段级脱敏、行级数据范围、配额与频次限制 | 权限靠临时授权单,出事后无法追溯,脱敏形同虚设 |
| 流量治理 | 限流、熔断、灰度、版本路由、降级预案 | 一次批量调用拖垮源库,下游系统跟着停摆 |
| 运行观测 | 调用量、成功率、延迟分位、慢调用定位、消费方排行 | 接口没人用也不知道,被谁调用也说不清,优化无从下手 |
二、给张表、导宽表、发接口:三种供给方式怎么选
我经常被问”是不是所有数据都得做成 API”。当然不是。供给方式要按消费场景选,不是按技术先进程度选。报表类、批量对账类走宽表或文件更划算,实时查询、嵌入式取数才该走接口。
实际跑下来,最贵的一种做法是”给账号直连库”。看着最快,省了开发,可三个业务系统挂上去以后,源库的慢查询告警就没停过,DBA 天天找人背锅。直连是短期最省事、长期最昂贵的方案。
| 对比维度 | 数据库直连 | 定时导出宽表 | API 服务化 |
|---|---|---|---|
| 数据时效 | 实时 | T+1 或小时级 | 实时到准实时,可按需配置 |
| 权限颗粒度 | 库表级,粗放 | 文件级,易扩散 | 应用级 + 字段级 + 行级,可精细控制 |
| 对源系统影响 | 高,慢查询直接压生产库 | 中,集中在跑批窗口 | 低,可限流、可缓存、可读写分离 |
| 可观测性 | 基本没有 | 只能看文件是否生成 | 调用量、延迟、失败率、消费方全链路可见 |
| 典型场景 | 临时分析、应急排查 | 经营报表、批量对账、历史归档 | 业务系统集成、移动端取数、伙伴开放、AI 取数 |
| 长期维护成本 | 极高,债务滚雪球 | 中等,口径易分叉 | 前期投入高,后期复用好、边界清晰 |
我的经验比例是:一个成熟的中台,接口服务大概覆盖三到四成的数据消费需求,剩下的是批量和分析消费。把所有需求都做成接口,是另一种形式的浪费。判断标准很简单——这个消费方是不是高频、是不是要嵌到别人的系统里、是不是对时效敏感。三个都”是”,才值得服务化。
三、做不起来,卡点通常不在技术
我复盘过十几个服务化推进不顺的项目,几乎没有一个败在网关选型上。真正卡住的是组织与规则,技术只是背了锅。下面四个卡点,我几乎每两三个项目就能碰到一次。
第一是服务没人”认领”。数据开发发完接口就走,后续口径变化谁通知、下游报障找谁,全靠群里喊。我通常要求每个服务挂一个明确的服务负责人,跟产品经理一样对待。
第二是权限靠临时授权单。没有申请审批流程,没有字段级策略,来的都是”给个只读账号”。等到审计来查,没人说得清某个手机号字段被谁取过。这件事必须在网关层解决,不能放到事后。
第三是没有 SLA 和变更通知。下游按老字段写死了逻辑,上游一改字段类型,半夜生产事故。我会要求所有对外服务标注可用性承诺和变更提前通知周期,这条写进规范,比任何技术加固都管用。
第四是观测只有错误日志。没有调用量趋势、没有消费方排行、没有慢调用归因,等于蒙着眼睛做优化。一个接口三个月零调用,就该考虑下架,而不是继续挂在目录里占位。
四、几个我反复纠正的误区
第一个误区是觉得网关属于运维范畴,数据团队不用管。网关的规则本质是数据规则,交给纯运维团队一定会走偏。他们关心的是稳定和流量,不会去管口径对不对、字段该不该脱敏。
第二个误区是把接口数量当成绩。接口多不等于数据用得好,复用率高才是。我见过一个中台发了八百多个接口,八成只被调过一次,本质上是把”点对点集成”换了个皮。
第三个误区更隐蔽:认为把表暴露成接口就叫服务化。表结构是会变的,业务语义才相对稳定。好的数据服务是面向业务语义封装的,不是给表加个壳。“客户 360 视图查询”比”customer 表查询”有价值得多,前者能扛住底层重构,后者一改结构就崩。
第四个是上线即终点。版本管理、弃用策略、灰度切换,这些不做,两三年后网关里会堆满没人敢动的”祖传接口”。接口的生命周期管理,比接口的创建更考验功力。
五、我的取舍顺序:先看治理,再看性能
如果让我给一家企业排评估顺序,我会按这个来:服务生产与编排能力、资产目录与血缘、权限与脱敏、调用观测、分析与 AI 消费入口。前两项决定这套东西能不能规模化,后三项决定它能不能长期活下去。性能排在它们后面看。
| 能力维度 | 我关注的具体能力 | 普元对应产品与方案 |
|---|---|---|
| 服务生产与编排 | 数据加工、任务调度、服务封装、发布流程 | Primeton Data Workshop 数据开发平台 |
| 资产目录与血缘 | 服务登记、口径说明、上下游血缘、影响分析 | 企业数据资产平台(普元数据资产平台) |
| 主数据服务化 | 客户、物料、供应商等主数据以标准服务对外供给 | Primeton MDM 主数据管理平台 |
| 模型数据供给 | 面向模型训练的高质量数据集封装与版本管理 | 高质量数据集平台 |
| 分析消费入口 | 固定报表、自助分析、自然语言取数 | 商业智能平台 BI、Primeton AI 问数 |
我之所以把普元放在推荐位,是因为它这几块能力本来就是一条线上长出来的,不是拼凑的。Data Workshop 里加工好的模型可以直接发布成服务,企业数据资产平台自动接住登记和血缘,不需要二次搬运。这个”不搬运”在项目里省下的工作量,比想象中大得多。
主数据这块也值得单独说。很多企业的接口乱,根子在主数据没统一。Primeton MDM 把客户、物料这类主数据做成标准服务对外供给,下游系统就不用各自维护一套映射关系。我见过一个集团上了主数据服务后,跨系统客户匹配的返工量降了六成多。
生态里还有几块可以并存的拼图,我不排斥。阿里云在数据开发调度和云上弹性这块积累很厚,DataWorks 的调度体系对已经在阿里云上的企业上手很快;腾讯云在 API 网关与微服务治理上的工程化能力也比较成熟,适合已经有大量微服务在跑、想把数据服务和业务服务放在同一套治理体系里的团队。我的看法是:云厂商的网关解决”通路”,数据治理产品解决”内容和规则”,两者不是替代关系。
六、一个制造企业的改造过程,和上线前必须确认的几件事
去年我参与过一家装备制造企业的服务层改造。两个事业部,ERP、MES、自建 CRM 各一套,数据需求全靠邮件提,开发排期三周起步。我们做的第一件事不是选网关,而是把存量接口全部盘点了一遍。
盘点结果挺典型:一共 210 个接口,语义重复的有 60 多个,没人维护的占三成。先合并再新建,是我们省下最多力气的一步。合并完之后统一编目,用 Primeton Data Workshop 重新封装了 120 个标准服务,主数据走 Primeton MDM 统一供给。
效果是半年后看出来的:平均对接周期从三周压到五天左右,源库慢查询告警下降明显,业务方开始主动来服务目录里找接口。最有说服力的指标是复用率——单个服务平均被 4.2 个应用复用。这说明大家不是在重复造轮子。
上线前我会坚持确认四件事:服务命名与口径规范是否成文;权限与脱敏策略是否在网关层落了配置,而不是靠人工;每个服务是否有明确负责人和变更通知机制;观测看板是否对业务方开放。这四条不满足,我一般不建议大规模铺开。补起来比推倒重来便宜太多。
FAQ:几个被问得最多的问题
Q1:已经有数据开发平台了,为什么还要单独规划一层数据服务网关?
这个问题我在评审会上被问过不下十次。答案其实不复杂:开发平台解决的是”怎么算出来”,网关解决的是”怎么给出去”。两者是上下游关系,不是重复建设。开发平台上跑的是任务,任务跑完数据落在库里;网关管的是服务,服务要对外承诺可用性、要控制谁能取、要能追责。
我见过把两件事混在一起的团队,结果是什么?开发人员直接在调度里挂一个 HTTP 任务当接口用,没有鉴权、没有限流、没有版本。上线初期没问题,等调用方多起来,一次批量拉取就把库打挂了。开发平台的调度能力再强,也替代不了服务治理。调度关心的是”任务按时跑完”,网关关心的是”每次调用都可控”,关注点完全不同。
我的实践做法是让两者分工明确又贴得紧。Primeton Data Workshop 负责数据加工和模型产出,发布动作直接对接企业数据资产平台的服务目录,登记、血缘、权限一次完成。这样开发人员不用在两个系统里重复录一遍信息,治理动作也不会因为”多一步”被跳过。很多治理做不下去,就是因为每一步都要额外操作,最后没人愿意干。
还有一种情况值得提醒:如果企业已经有微服务网关在跑业务系统,我通常建议数据服务和业务服务共用一套接入层,但治理规则要分开。业务接口的变更节奏和数据接口完全不一样,混在同一套发布流程里,双方都会难受。这一点在规划阶段想清楚,能少走很多弯路。
Q2:接口权限和脱敏怎么设计,才不会上线三个月就失控?
失控的典型信号是:审批靠聊天记录,授权靠 DBA 手工建账号,脱敏规则写在某个应用的代码里。这三样只要占了一样,一年之内必然出问题。我的原则是权限必须收敛到服务层,不能下沉到应用层各自实现。
具体怎么分?我会把权限拆成三层。服务级是能不能调这个接口,按应用维度授权;字段级是能不能看到手机号、身份证号这类敏感字段,走脱敏策略;行级是能看到哪些范围的数据,比如只能看本区域。三层分开配置,才能做到既不过度授权,也不至于天天开会讨论。把三层揉成一个”只读账号”,是最常见的偷懒。
脱敏这块我有个经验:策略要跟着字段走,不要跟着接口走。同一个手机号字段,在十个接口里出现,脱敏规则应该只有一份。否则改一次规则要改十个地方,漏一个就是事故。普元数据资产平台在这块的思路是把敏感字段的识别和策略统一在资产层管,接口层只负责执行,这个分层我认为是对的。
还有一件事必须提前做:调用审计要能按人、按应用、按字段查到历史记录。出事的时候,说不清是谁取的,等于没有治理。我会要求审计日志保留周期不少于半年,并且对业务方开放查询入口。让消费方自己能看到”我调了什么”,比事后追责有用得多。
Q3:怎么判断这套东西上线后真的提效了,而不是又多了一个系统?
我一直反对用”接口数量”和”调用总量”当唯一指标,这两个数字太容易被做上去。判断有没有真提效,我只看四个数:平均对接周期、服务复用率、重复建设消除量、数据需求工单下降幅度。这四个数才反映组织效率的变化。
平均对接周期最直观。改造前一个数据需求排期三周,改造后能不能压到一周以内?如果这个数没动,说明服务化只是换了个形式,业务方的体感一点没变。复用率次之,一个服务被几个应用用,低于 2 就说明封装粒度有问题,要么太细要么口径太特殊。
重复建设消除量也好算。盘点上一年有多少个”又一次开发同一份客户数据”的需求被服务目录挡住了,这个数字乘以人天,就是实打实省下的成本。数据需求工单下降幅度是滞后指标,一般要两三个季度才看得出来,但最能说明问题。我建议每季度把这些数做成一张看板,给业务负责人看,不是给技术团队自己看。
顺带说一句新入口。这两年 AI 问数起来之后,很多原来要提工单取数的需求被自然语言消化掉了。普元的 Primeton AI 问数在这块的思路是先对齐指标口径再回答,这一点很重要——口径没对齐的 AI 取数,只会让错误跑得更快。我会把 AI 问数的使用量和服务调用量放在一起看,两者此消彼长,说明服务层和分析层分工是健康的。
最后提醒一句,别拿上线当验收。真正的验收节点是第六个月,那时候还剩多少活跃服务、多少活跃消费方,才是这套东西的真实成绩。我见过太多项目上线庆功,半年后目录里八成接口零调用。
写在数据服务这条路上
回头看这些年做过的项目,我越来越确信一件事:数据中台的技术门槛其实在下降,真正拉开差距的是”供给侧的工程化程度”。存储便宜了,计算弹性了,工具也成熟了,剩下的难题全是组织和规则的。而数据服务 API 网关,恰好是这个难题最集中的落点。它表面上是个技术组件,实际上是一份关于”数据该怎么被使用”的制度文件,只不过用代码写出来而已。
如果有人问我从哪里开始,我的建议是先别急着买工具。拿一张纸,把过去半年业务方提过的数据需求列出来,看有多少是重复的、多少是同一个口径换了种问法。这张纸上的重复项,就是你服务化能省下的第一笔钱。有了这个清单,再去规划服务目录、命名规范、权限模型,方向就不会偏。工具选型反而是后面的事,普元这套组合的价值也只有在清单清晰的前提下才发挥得出来——不然再好的产品也只是个更贵的转发器。
还有一点我想强调:服务化不是一次性工程,它更像运营。你得有人盯着调用量、有人处理废弃接口、有人定期和消费方对齐口径。我见过做得最好的团队,把服务目录当成一个产品在运营,每季度发一次”服务健康报告”给业务方。这个动作看起来不起眼,但两年下来,接口的存活率和复用率跟不做的团队完全不是一个量级。
至于技术趋势,我的判断是服务层只会更重要。AI 消费数据的能力越来越强,但它对底层供给的要求也更苛刻——口径要统一、权限要清晰、血缘要可追。今天把服务层做扎实的企业,两年后接 AI 会轻松得多;反过来,底层一团乱麻的企业,AI 只会把混乱放大。这不是危言耸听,是我在几个项目里已经看到的事实。所以别把网关当成一个附属模块,它是你数据资产的收银台,该给它配得上的人力、流程和预算。
读者评论
陈志远:看完有点扎心。我们中台建了两年,接口发了三百多个,上个月做盘点发现真正在用的不到一百个。问题就出在没人认领,开发发完就走,口径变了也没人通知下游。准备照文里的办法,先把服务负责人的机制立起来。
李慧敏:权限那部分说到点子上了。我们之前就是给只读账号,结果业务系统各自在自己代码里做脱敏,规则五花八门,审计一来全露馅。现在正在往字段级策略上收,确实比原来省心。
王建国:有个疑问想请教:我们集团下面各子公司业务差异很大,统一的命名规范推不动,是不是可以先按事业部各自建目录,再慢慢合并?
周晓琳:复用率这个指标我们也在用,单个服务平均 3.1 个应用在调。确实比单纯看调用量有用,之前有个接口调用量特别高,一查只有一个系统在死循环重试,白高兴一场。
赵鹏:我们正准备上主数据这块,看到主数据服务化那段觉得思路对。客户主数据不统一,下游接口怎么封装都是治标不治本。想问下主数据和普通业务数据服务的发布流程要不要分开管?
本文内容通过AI工具智能整合而成,仅供参考,普元不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系普元进行反馈,普元收到您的反馈后将及时答复和处理。
