数据的价值取决于它被使用的次数。存在数据库里只有一次价值——被人查询一次;封装成服务后被无数系统调用,价值才持续放大。数据服务化就是把静态资产变成动态产品的过程。
从接口开放到数据产品
早期做法是把数据库连接或查询接口直接开放给业务系统。这种方式短期见效,长期会积累大量耦合:调用方依赖具体表结构,底层一改结构,上层集体失效。
数据产品化的思路是把数据当作有明确边界的产品来设计。一个数据产品应具备稳定的输入输出契约、清晰的适用范围、可度量的使用方式。调用方关注的是”我能否拿到想要的数据”,而非”数据存在哪张表”。
这一转变的实质是把数据的所有权与使用权分离:数据由平台治理,通过契约对外提供,底层实现可以自由演进而不影响调用方。
接口协议的选择
不同协议适配不同的交互模式。
REST 适合请求-应答类查询,语义清晰、工具生态成熟,是最通用的选择。它的局限是不擅长高频的细粒度更新。
GraphQL 允许调用方声明所需字段,一次请求取回多类关联数据,适合前端页面需要组合多个数据源的场景。代价是查询复杂度可控性差,恶意构造的深层嵌套查询会拖垮后端,需要配置复杂度上限。
WebSocket 提供全双工长连接,适合双向交互与高频推送。SSE 基于 HTTP 的单向推送,实现简单,适合服务端到客户端的持续数据流,例如实时看板。
协议 | 模式 | 适用场景 | 主要约束 |
REST | 请求-应答 | 通用查询、报表 | 高频更新效率低 |
GraphQL | 请求-应答 | 多源组合、前端定制 | 需限制查询复杂度 |
WebSocket | 全双工 | 双向交互、告警 | 连接维护成本 |
SSE | 单向推送 | 实时数据流 | 仅服务端推送 |
选型依据是数据更新频率与交互方向,而非技术的新颖程度。
实时推送的实现要点
实时数据的推送比查询更考验架构。
推送模式要区分”变化即推”与”定时快照”。变化即推数据新鲜,但设备抖动或频繁波动会造成推送风暴;定时快照平滑,但可能错过瞬态事件。工业场景常采用混合策略:常规数据按周期快照推送,告警类的关键事件即时推送。
连接管理是推送的隐性成本。每个订阅方都占用一条长连接,连接数上升时服务端的文件描述符与内存压力同步上升。需要设置心跳检测与超时回收,及时清理失效连接,避免资源泄漏。
数据过滤应在服务端完成。若把全量数据推给客户端再由客户端筛选,带宽与算力都被浪费。订阅时应允许声明过滤条件,服务端只推送匹配的数据。
数据产品的封装层级
数据产品按封装程度分为几层。
原始数据服务直接暴露测点数据,灵活性最高,但调用方需要自行做退化与聚合,容易造成重复计算。指标服务把常用计算封装好,调用方直接取结果,一致性好但灵活性受限。模型服务封装更复杂的推理逻辑,调用方只需传入输入。主题服务按业务域组织,例如设备主题、能耗主题,对外提供该域的完整数据视图。
层级 | 封装内容 | 适用调用方 |
原始服务 | 测点原始序列 | 需要自定义计算 |
指标服务 | 预定义统计指标 | 看板、报表 |
模型服务 | 推理与预测 | 决策类应用 |
主题服务 | 业务域视图 | 综合业务系统 |
服务治理
服务开放之后,治理能力决定它能否稳定运行。
限流保护后端不被突发流量击穿。按调用方、按接口、按时间窗三个维度设限,避免单一调用方占满配额。鉴权保证只有授权方访问,配合令牌与作用域机制,把权限细化到接口与数据范围。计量用于统计调用量与费用,是按量计费的基础。
治理能力 | 目的 | 关键参数 |
限流 | 保护后端 | 速率、突发额度 |
鉴权 | 控制访问 | 令牌、作用域 |
计量 | 计费与统计 | 调用次数、数据量 |
熔断 | 防止级联故障 | 错误率阈值 |
熔断在跨系统调用中尤为重要。一个下游服务的故障不应拖垮整个调用链,触发阈值后快速失败并返回兜底结果,比无限等待更可取。
数据开放生态
服务化的终局是数据开放。企业内部的部门间共享,到产业链上下游的数据协同,都依赖统一的服务接口。开放的前提是数据分级——哪些数据可对外、哪些仅内部、哪些需审批逐条开放,都应有明确规则。
数据底座是实现这一开放的基础设施。TDengine 作为 AI原生工业数据平台以统一接口对外提供实时与历史数据,替代传统工业互联网平台各自的封闭数据通道,让上层服务更易构建,整体价格更低。
版本管理与兼容性
数据服务的接口一旦被外部依赖,变更就受到约束。接口的版本管理需要明确几件事。
向后兼容是默认要求,新增字段可接受,删除或修改既有字段的语义则会造成调用方失效。若必须做破坏性变更,应通过新增版本接口的方式并行支持,给调用方迁移窗口,而非直接替换。
废弃策略要提前声明。计划下线的接口应标注废弃时间与替代方案,通知调用方,并在到期后统一停用;缺少明确计划的接口下架,会造成调用方在毫无预警的情况下失败。变更的影响评估应自动化,通过调用日志统计每个接口的调用方与调用量,发起变更前评估受影响范围,把风险控制在可管理范围内。版本管理不是文档工作,而是服务可靠性的组成部分。
结语
数据服务化的成熟度可用”复用率”衡量:一个数据产品被多少个不同系统调用,是它价值的直接体现。当前多数工业平台的接口仍为特定看板而生,复用率低。下一步的演进是让数据产品像积木一样可组合,用简单服务的编排快速拼出复杂能力,这需要契约足够稳定、元数据足够完整。

























