TDengine All-in-One 与自研工业系统:能力重叠与集成边界
当现成平台已经提供数据接入、存储、分析和可视化,自研采集系统还应承担什么?我不认为答案是强行证明两者“零冲突”。更有价值的判断,是把需求拆开,检查哪些已有能力可以复用,哪些定制工作仍然必要。
更新于 2026-09-09。本文是项目选型研究,结合官方资料复核;不表示已经完成 All-in-One、IDMP 或 TDgpt 的全套部署验收。
使用 TSDB 与采用 All-in-One 是不同范围
项目当前讨论的 TDengine 存储后端,主要是时序数据写入与查询。All-in-One 的范围更广:官方将它描述为覆盖接入、存储、分析、建模、可视化和 AI 应用的平台组合。TDengine 官方产品介绍
对项目决策,可以先按职责理解:
| 职责 | 要评估的内容 |
|---|---|
| 时序存储 | 数据模型、读写、保留、备份和运维 |
| 数据接入 | 协议、数据源、网络位置与格式映射 |
| 上层管理与分析 | 业务上下文、页面、事件和分析流程 |
| AI 使用 | 能访问什么数据、能做什么动作、结果如何核验 |
组件名称和套餐可能变化,实际部署应核对版本、授权及运行条件。一次 JDBC 接入成功,不能当成整个组合已经集成成功。
采集能力存在重叠
原始研究曾将自研系统定义为协议采集端,并断言 TDengine 不做协议采集。这个说法需要纠正:官方文档明确提供通过 taosX 接入 OPC UA Server 的路径,标注为 TSDB Enterprise 功能。OPC UA 接入
taosX-Agent 还可以部署在更接近数据源的位置,代理受网络限制的数据接入。taosX-Agent 参考
因此,自研系统的价值不能建立在“对方完全没有采集功能”上。应该比较具体协议、特殊读写流程、已有模板资产、交付形态和业务接口:如果平台现成功能已经满足需求,增加一层自研采集器可能只会增加维护成本。
三种组合方式
以下是候选架构,不是本项目三条均已联调通过的能力。
| 方式 | 适用条件 | 代价 |
|---|---|---|
| 自研采集 → TSDB | 已有采集逻辑,需要时序存储与查询 | 自己维护上层页面、权限与业务服务 |
| 现成接入组件 → TSDB / IDMP | 数据源与上层需求已被平台覆盖 | 接受平台模型、组件条件和配置方式 |
| 自研采集 → 中心平台 | 特殊采集需要保留,上层可复用 | 需要维护两边标识、时间、Schema 和状态契约 |
选择混合架构时,必须写清哪一层负责数据模型,哪一层负责规则与告警,谁是历史查询的权威源。否则会出现两个页面分别解释同一事件、两套保留策略互相冲突的问题。
JDBC 直写与 MQTT 传递不是天然互斥
当前项目将存储与消息输出作为不同能力,这是合理的职责划分。但不能推导成“MQTT 只能转发给第三方,不能作为入库通路”。MQTT 消费端完全可能承担入库职责,关键在于整体拓扑和交付语义。
需要避免的是无意重复:同一逻辑数据一边直写目标库,一边通过另一消费者再次写入相同目标,却没有约定唯一键和去重。若双路用于迁移或冗余,应明确重复识别、切换条件与结果核对。
业务侧还要说明:采集完成、发布成功、消费成功、入库成功分别在哪里确认。Broker 接收了消息不代表数据库可查,界面上一个“成功”状态不够表达所有阶段。
上层 AI 也不应强行划成完全互补
IDMP 产品页描述了工业建模、可视化、事件管理和 AI 分析能力。自研平台则围绕业务接口工具化、Agent 配置和跨系统调用展开。两者切入点不同,但在自然语言查数和结果解释上可能重叠。IDMP 能力介绍
我的判断是:如果目标主要是消费已经进入平台的工业数据,先评估现成分析功能;如果目标需要访问多个已有业务系统,或执行其专属流程,再评估自研工具平台的价值。
这不构成效果或性能优劣结论。实际比较应使用同一问题、同一数据范围,观察答案来源、权限、调用成本、可核验性与维护工作量。
一次小范围验证比全景功能表更有用
我会选择一个设备、几个明确点位和一个业务问题,验证:
- 标识、单位与时间从采集到查询没有改变含义。
- 缺测、重连和重复数据能被识别。
- 原始点与聚合结果可对应,页面和 AI 不隐瞒插值或范围缺口。
- 关闭某一通道后,系统能说明哪些结果不再可用。
- 维护同样场景需要多少配置与定制代码。
这个验证通过后,再讨论更大的数据规模和高可用部署。不能根据宣传中的缓存、流计算或订阅能力,直接断言可以替代所有 Redis、Flink 或 Kafka 用途。
我的当前取舍
保留自研工业系统的配置与采集实践,继续完善已有 TDengine 读写契约;All-in-One 作为可选集成与选型研究,不包装成已经交付的功能。AI 平台也围绕具体业务查询和执行问题演进,而不是复制另一套工业数据管理界面。
能够说明何时使用现成产品、何时值得写代码,是系统设计的一部分。具体源码实践见TDengine 建模与查询,AI 的独立职责见平台架构。