TDengine IDMP 十大实用功能(3)

资产建模(元素树 + 元素模板 + 属性 + UOM)------先把「这是哪台设备」说清楚

一句话:IDMP 不把现场数据当成"一堆点位号"。它先让你建一棵树,把厂里有什么设备、设备有哪些属性、属性用什么单位定下来;这棵树建对了,后面的面板、分析、事件、AI 才全都有意义。


一、工业数据的第一道坎不是"存",是"认亲"

时序数据库里,一条数据长这样:

bash 复制代码
tag001_pv    2026-09-12 08:00:00.000    3.42

存是存下来了。但------这是哪台设备?哪个测点?单位是米还是兆帕?3.42 算正常还是异常?没人知道。

于是每个项目都要重来一遍:写文档、做对照表、在 Excel 里查"tag001 对应 3 号线 2 号泵出口压力"。查完这一遍,系统里的数据才算有了意义------但这份意义不在系统里,在某个人的脑子里。

IDMP 的资产建模,就是把这层意义搬进系统:

原来 建完模型之后
tag001_pv = 3.42 「炼钢车间 / 3 号泵站 / 2 号泵」的「出口压力」= 3.42 MPa
不知道是谁的数据 知道它属于哪台设备、哪条产线、哪个车间
不知道正不正常 有模板给的正常范围、有单位换算、有理论上的关联测点
换个人就看不明白 谁打开都看得懂

一句话:建模不是"配置工作量",是"把老师傅的脑子变成系统的结构"。


二、元素树:像文件夹一样组织整个工厂

IDMP 用一棵树描述你的工厂,和电脑里的文件夹几乎是一个思路:

bash 复制代码
集团
└── 华东基地
    └── 炼钢车间
        ├── 3 号转炉
        │   ├── 氧枪系统
        │   │   ├── 氧枪 A
        │   │   └── 氧枪 B
        │   └── 倾动机构
        └── 1 号精炼炉

树上的每一个节点叫一个元素(Element)------可以是一个车间、一条产线、一台设备、一个部件,甚至一个虚拟分组。它有三个好处:

  1. 找得到:想找 2 号泵,沿树点进去,不用背点位号。
  2. 可继承:父节点的属性可以被下面的子节点继承和聚合------"整条线"的能耗不用手工加总。
  3. 权限有边界:谁管哪个车间,就给哪个子树,天然对应组织架构。

⚠️ 但要说清楚:树只表达"归属",不表达"影响"。

"这台泵属于 3 号泵站"是树;"这台泵的停机会导致下游结晶器缺水"不是树,那是关系------见第 04 篇。


三、元素模板:一次定义,批量生产

一台泵有流量、压力、电流、振动、温度、启停状态......如果每台泵都手工加一遍属性,40 台泵就是 40 遍重复劳动,而且必然有人漏、有人拼错。

元素模板(Element Template)就是解决这个的:

  • 你定义一个「水泵」模板:12 个标准属性、每个属性的类型和单位;
  • 然后每台泵套上这个模板,12 个属性自动到位;
  • 以后加一个新属性(比如"轴承温度"),改模板一次,40 台泵全部跟上。

模板还能多层继承:可以定义「旋转设备」→「泵」→「离心泵」,子模板自动拿到父模板的所有属性,再加自己的。

这就是为什么 IDMP 敢说"零代码建模"------不是不用建,是同类设备只建一次。

💡 如果只是临时挂点数据、不想建模板,也支持自由元素(无模板元素)。省事,但会失去一致性------后文「边界与提醒」会说清楚代价。


四、属性:把「数值」变成「有含义的数值」

属性是元素上的一个字段。听起来简单,但 IDMP 的属性支持好几种来源,这是它比"打标签"强的地方:

属性类型 是什么 例子
数据引用(DR) 直接指向 TDengine 子表的某一列或某个 tag 泵出口压力 ← pump_003.pressure
表达式属性 由其他属性算出来 泵效率 = 流量 × 扬程 / 功率
引用属性 引用别的元素的某个属性 本站出口压力 ← 下游泵站进口压力
KPI 属性 可在模板层定义的业务指标(含公式与单位) 单位能耗 = 电量 / 处理量
虚拟表引用 指向超级表虚拟表,便于跨子表统一查询 全厂所有泵的压力
联邦属性 指向外部数据库(MySQL / PostgreSQL / InfluxDB) 设备台账里的"投运日期"

除此之外,每个属性还能带这些"工程附件":

  • 单位(UOM):让 3.42 变成 3.42 MPa;
  • 限值 :Lo / LoLo / Target / Hi / HiHi / USL / LSL,SPC 场景还有 CL(均值)和 σ(标准差)------后面第 06 篇做统计判异就要用;
  • 精度与显示格式:同一份数据,工程师看 6 位小数,厂长看 2 位。

🔧 工程细节:属性是惰性实例化的。给一个模板挂 50 个属性、下面有 5000 个元素,系统不会一上来创建 25 万个属性实例,而是用到才建------否则第一次打开页面就得转圈半小时。


五、UOM:单位不是备注,是数据结构

很多平台把单位当成一个"备注字段",写个 "MPa" 就完事。结果就是:一个系统里同时存在 kPa、bar、MPa,做聚合时数据直接算错。

IDMP 把单位做成了有换算关系的对象:

bash 复制代码
单位分类(UOM Class):压力
├── 基准单位(canonical):Pa
├── kPa  = Pa × 1000
├── MPa  = Pa × 1000000
└── bar  = Pa × 100000

好处很直接:上层看 MPa、底层存 Pa,聚合时自动换算,不会算错。

而且整套单位定义可以导出成 JSON 包,导入到另一套环境------引用关系用"名称"而不是本地 ID,所以换环境不会断链。多基地、多环境的项目不用一家家重配。

📣 这条不是我们自说自话:客户研讨会里,国家管网 把"目前均为标量数据,字符串记录的单位转换方式需升级、希望使用 UOM 自动推导单位体系"列为唯一被标为高优先级的技术需求。这是四家客户里最硬的一条痛点。


六、三种建模入口:手工、CSV、Markdown

入口 适合谁 特点
手工建 少量设备、探索阶段 点着建,最直观
从 CSV 导入 存量项目、有 Excel 台账 20 列表格,机器友好、人不好读
从 Markdown 导入 实施团队、多人协作 一个元素一块、一个属性一张表,人能读能改能评审

Markdown 建模是后加的主力入口,它是一种人能读的建模文件:

  • 每个元素用一对注释包起来(<!-- element:start --> ... <!-- element:end -->),块内用表格填信息;
  • 属性写成表格,一行一个属性,指定数据来源(哪个库、哪张超级表、哪一列);
  • 支持 ${tbname} 这类表达式 + 子表过滤,一段描述能展开成千上万个元素------所以它没有牺牲批量能力;
  • 支持一次上传多个文件,一个批量任务串行处理,逐文件显示状态,某个文件失败不影响其他文件;
  • 不确定怎么写?用「生成基础 MD」按库/超级表导出一份骨架,改就行。

真实用法是这样的:某钢厂项目,建模团队三个人分工,各自用「生成基础 MD」导出骨架,补全后把 炼钢厂.md、轧钢厂.md、动力厂.md 一次全选上传------三个人并行准备,一次提交。


七、一个生产实践的例子:动力厂 120 台泵,一个下午

某钢厂动力厂要做能源管理。要建的是:3 个站房、40 台水泵、80 台风机,共 120 台设备、约 1400 个测点。

老办法:拉一张 Excel 台账,一个一个填------三周,而且填完还有一堆拼错的名字和打架的单位。

这次是这么干的:

13:30 · 先让系统给骨架。

在「从 MD 导入」里选 iot 库、选 pump_data 超级表,点「生成基础 MD」。系统导出一份骨架文件:元素路径、属性表、数据引用列都已经按超级表的真实列名填好了。

14:10 · 补模板和单位。

王工建了一个「离心水泵」元素模板:流量、出口压力、电流、振动、轴承温度......12 个标准属性,每个都挂上单位(m³/h、MPa、A、mm/s、℃)。然后复用已有的「压力」「流量」「温度」三个 UOM 分类------不用重新定义单位,直接从单位库里引用。

14:40 · 批量展开。

风机那 80 台长得一模一样,他在 MD 里只写了一个块:

bash 复制代码
路径:动力厂/鼓风站/${tbname}
子表过滤:tbname LIKE 'fan_%'

一个块,展开成 80 个元素。上传后十分钟,80 台风机连同测点全部建好。

15:20 · 三个文件一起传。

水泵、鼓风、循环水三个 MD 文件一次选中上传,后端作为一个批量任务串行处理。进度面板上,每个文件的状态一清二楚:pump.md 完成、fan.md 完成、water.md 卡在第 12 块------因为那块引用了单位库里不存在的 kgf/cm²。整个文件在创建前就失败了,一条脏数据都没落库。 补上单位,重新传,通过。

17:00 · 收工。

一棵三层、120 台设备、1400 个测点的模型站在那儿了。后面所有面板、分析、告警,全部长在这棵树上。

最关键的一件事 :一周后王工发现"轴承温度"这个属性应该细分(驱动端 / 非驱动端)。他改了「离心水泵」模板一处,120 台设备全部自动跟上。老办法里,这意味着再改三周。


八、怎么用:三步上手

第一步:先想清楚"树怎么分层"

按你的管理方式分层:集团 → 基地 → 车间 → 产线 → 设备 → 部件。分层要跟组织架构和报表口径一致,不要为了"好看"多加两层。

第二步:找出"重复的那批设备",先建模板

同一类设备别建第二次。建模板时想三件事:它有哪些标准测点、每个测点的单位和量程、哪些指标是算出来的(KPI)。

第三步:量产

  • 设备少(<20 台)→ 手工建,顺手验证模板对不对;
  • 设备多、有台账 → 「从 MD 导入」,先「生成基础 MD」再改;
  • 存量 CSV 项目 → 继续用 CSV 入口,不折腾。

九、能解决什么问题

问题 1:数据是"有数无义"

点位号变成"某台设备的某个测点、带单位、带限值"------数据第一次能被人读懂。

问题 2:同一个模型要建很多遍

模板 + 继承,同类设备只建一次;改一次,全部同步。

问题 3:单位打架、聚合算错

UOM 是数据结构不是备注,换算有依据,单位体系可跨环境搬。

问题 4:建模是"实施顾问的黑盒"

Markdown 建模让建模文件进 Git、能 Code Review、能多人分工------建模从"顾问的手艺"变成"工程团队的资产"。


十、边界与提醒(诚实版)

  1. 模板设计错了会传染。 模板改一处,下面所有实例一起变。这是它的威力,也是它的风险------上线前先在 2~3 台设备上验证模板,再铺开。
  2. 自由元素省事,但一致性会丢。 没有模板约束,同一个测点在不同设备上可能叫三个名字,后面做分析时要一个个对齐。
  3. MD 导入只引用已有单位,不创建单位。 文件里写了库里没有的单位,整个文件在创建前失败(这是刻意的:宁可报错,不要半对半错)。所以建模前先把 UOM 库配好。
  4. 换算链不能循环。 A 换算到 B、B 又换算回 A,导入会直接拒绝。
  5. 树不是全能的。 上下游、控制、联锁这些"影响关系"树表达不了,得靠关系图(下一篇)。
  6. 客户反馈还集中在"要什么"阶段。 研讨会里国家管网提的是 UOM 需求、山东英伟电子提的是"多棵树表达多维度太难",说明建模这一层的真实痛点很硬,但也说明体验层面还有打磨空间。

十一、和别的功能怎么配合

你刚建完模型,接下来 去哪
想看设备之间"谁影响谁" 元素关系图(第 04 篇)
想接外部库里的数据,不搬家 外部数据引用 + 联邦查询(第 05 篇)
想让设备自己会算、会告警 实时流分析(第 06 篇)
想快速出图看看数据长什么样 无问智推(第 01 篇)------模型建好,面板自动推
想让 AI 帮你解读一台设备 AI 问答 / AI Function(第 02 篇)

建模是地基。地基没打好,后面的 AI 只能靠猜------建模质量决定 AI 质量,这句话在 IDMP 上体现得最直接。

十二、关于 TDengine IDMP

TDengine IDMP(Industrial Data Management Platform)是一款 AI 原生的工业数据管理平台 。

它不负责存数据------那是 TDengine TSDB 的事;它负责给数据补上业务含义,并在这个基础上让 AI 真正跑起来。

本文讲到的 AI 问答、AI Function、无问智推,都是平台自带能力,不需要另外搭一套 AI 应用。

免费版够不够用

IDMP 提供免费版,中小企业和个人用户可以直接用。

免费版与商业版在功能、性能上完全一致 ,通过年度续期 即可长期免费使用,只在测点数量 上设有上限------

对大多数中小企业来说,这个额度够用。All-in-One 装完会自动申请并激活免费许可,不需要额外配置。

怎么装:All-in-One 一键部署

All-in-One 把 IDMP、TSDB、TDgpt、TDmodel 打包成一个部署包:

环境 怎么装
Linux (Ubuntu / Kylin / openEuler / Anolis;需 root、内核 ≥ 3.10.0-1160、glibc ≥ 2.28) 执行下面的主机模式命令
Windows 10/11、Server 2019+ 下载 TDengineSetup-x64.exe,双击后选「主机方式」
Docker(Linux / macOS / Windows,Docker ≥ 20.10) 执行下面的容器模式命令;macOS 只支持 Docker 部署,需先启动 Docker Desktop
bash 复制代码
# 主机模式(Linux)
curl -fsSL https://downloads.taosdata.com/apex/latest/install.sh | bash -s -- -m apex

# 容器模式(Linux / macOS)
curl -fsSL https://downloads.taosdata.com/apex/latest/install.sh | bash -s -- -m docker

装完浏览器打开:

text 复制代码
http://localhost:6042

从其他机器访问,把 localhost 换成部署节点的 IP 或主机名。

装完先把 AI 接上

平台装好,AI 还差一步(也就是第五节说的前提):

  1. 连一个大模型:OpenAI 兼容接口,填地址 / Key / 模型名;内置 15 天试用连接,可先零配置体验;
  2. (可选)装 TDgpt:要做异常检测、预测、缺失值填补时才需要,它独立于大模型运行;
  3. 把数据接进来:连现成的 TDengine TSDB,或用示例数据先跑通。

两点容易踩:默认部署清单是 deployment-single-node-no-tdmodel.yaml,TDmodel 仅支持 Docker 部署 ;

TDgpt 默认启用 moirai 模型,x64 CPU 需要支持 AVX2。

运维与卸载(Linux 主机模式)

操作 命令
启动 IDMP svc-tdengine-idmp start
停止 IDMP svc-tdengine-idmp stop
卸载 IDMP rmidmp

链接

相关推荐
sun03221 小时前
【JDK 动态代理】 和 【CGLIB 代理】对比
java·数据库·sql
实验室管理云平台1 小时前
面向高职院校实训场景:实训实验室管理平台整体方案分享
大数据·科技·物联网·自动化
YH_Analytics1 小时前
2026 高压 E-House 市场深度分析报告市场格局
网络·数据库
试剂界的爱马仕2 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习
wtblszn2 小时前
热水机组物联网远程监控系统方案
物联网
后台模板学习2 小时前
MongoDB 与 MySQL 在 IM 即时聊天场景中该
数据库·mysql·mongodb
liliangcsdn2 小时前
涨幅来源盈利估值分解探索
大数据
KaiwuDB2 小时前
企业级数据库数据保护:KaiwuDB KaiwuDB V3.3.0 发布:S3 冷热分层存储与主备集群能力增强实战解析模场景备份恢复方案解析
数据库·时序数据库·kaiwudb·发版·多模时序数据库·冷热分层存储·主备集群
深圳市益普科技有限公司2 小时前
半导体SPC工具怎么选?从控制图算法到落地架构的对比
大数据·人工智能·架构