TDengine IDMP 工业数据建模 —— 属性

3.2 属性

属性定义了元素的可测量特性。它是物理资产行为与 TDengine TSDB 中存储数据之间的桥梁------将原始数值转化为有名称、有类型、有物理单位的工程量。

3.2.1 什么是属性

属性是元素的一个命名特性,用于保存或引用某个值。对于泵元素,属性可能包括流量、出口压力、电机温度和运行状态;对于智能电表,属性可能包括电流、电压、功率和设备 ID。

属性为原始数据赋予了上下文。用户和应用程序无需通过技术字段名查询数据库列,而是可以在清晰的资产层次结构中,通过有意义的属性名来引用数据。

3.2.2 数据引用类型

数据引用类型决定了属性值的来源。共有四种类型:

3.2.2.1 TDengine 指标

引用 TDengine TSDB 表中的指标列(时序测量列)。属性值随新数据写入而实时更新。适用于随时间变化的值,如温度、压力、流量、电流、电压等。

数据引用设置的格式为:

text 复制代码
连接名/数据库名/表名/列名

示例:TDengine/idmp_sample_utility/em-12/current

如果采集的指标还带有数据质量且与属性值存在同一张表,则数据引用设置还可以带上数据质量列的列名。格式为:

text 复制代码
连接名/数据库名/表名/列名:质量列名

示例:TDengine/idmp_sample_utility/em-12/current:quality

:::note

质量列的数据类型必须是 INT。

:::

3.2.2.2 TDengine 标签

引用 TDengine TSDB 表中的标签值。标签是附加在表上的静态元数据字段(如设备 ID、位置或安装楼层)。适用于值来源于 TSDB 标签而非时序列的属性。

格式与 TDengine 指标相同:

text 复制代码
连接名/数据库名/表名/标签名

示例:TDengine/idmp_sample_utility/em-17/location

3.2.2.3 公式

计算型属性,其值由引用同一元素其他属性的表达式推导得出。表达式会被转换为 TDengine SQL 表达式,并在 TDengine TSDB 上执行。输出必须为数值类型。

示例表达式:

text 复制代码
log(current) * voltage + 10

可使用特殊替换参数 TIME,它会被替换为当前本地时间对应的毫秒数。您可以在表达式编辑器中点击评估 ,在保存前测试并验证公式。完整的表达式编辑器说明请参见 [3.2.9 节](#3.2.9 节)。

:::note

公式属性只能引用同一元素的属性。如需使用其他元素的值,请在当前元素上新增一个属性,使其指向相同的数据源。

:::

3.2.2.4 字符串构建器

与公式类似,但输出为字符串。输入可以是当前元素的任意属性(不限于数值类型)。常用函数包括:

  • CONCAT(...) --- 拼接多个字符串
  • SUBSTR(str, start, length) --- 截取子字符串
  • CAST(value AS varchar) --- 将非字符串类型转换为字符串

TIME 外,字符串构建器还支持更多替换参数,例如当前元素名、当前属性名和模板名。

示例表达式:

text 复制代码
CONCAT('voltage of device ', ${attributes['Device ID']}, ' is ', CAST(${attributes['Voltage']} AS varchar), 'V')

:::note

不能使用加号拼接字符串,请使用 CONCAT() 函数。CONCAT() 的每个参数都必须是字符串类型,请先使用 CAST() 将数值属性转换为字符串再传入 CONCAT()

:::

3.2.3 属性特性

每个属性都具有以下可配置特性:

3.2.3.1 基础字段

特性 说明
名称 属性在其元素内的唯一名称
描述 对该属性所测量或代表内容的可读说明
类别 用于在属性选项卡中对属性进行分组和筛选的一个或多个标签
值类型 值的数据类型:FloatDoubleIntBigIntTinyIntSmallIntBoolNcharVarcharTimestamp
默认值 当数据源无可用数据时返回的值
计量单位分类 物理量类别(如电流、温度、压力)。选择计量单位分类后,默认计量单位和显示计量单位的可用选项会相应筛选。
默认计量单位 属性值存储时使用的单位(如安培、°C、bar)
显示计量单位 在面板和仪表板中显示值时使用的单位,可以与默认计量单位不同------IDMP 会自动进行换算。
显示精度 正数表示小数点后显示数字位数,负数代表显示有效数字位数。
数据引用类型 属性值的来源:TDengine 指标、TDengine 标签或无(参见 [3.2.2](#特性 说明 名称 属性在其元素内的唯一名称 描述 对该属性所测量或代表内容的可读说明 类别 用于在属性选项卡中对属性进行分组和筛选的一个或多个标签 值类型 值的数据类型:Float、Double、Int、BigInt、TinyInt、SmallInt、Bool、Nchar、Varchar、Timestamp 默认值 当数据源无可用数据时返回的值 计量单位分类 物理量类别(如电流、温度、压力)。选择计量单位分类后,默认计量单位和显示计量单位的可用选项会相应筛选。 默认计量单位 属性值存储时使用的单位(如安培、°C、bar) 显示计量单位 在面板和仪表板中显示值时使用的单位,可以与默认计量单位不同——IDMP 会自动进行换算。 显示精度 正数表示小数点后显示数字位数,负数代表显示有效数字位数。 数据引用类型 属性值的来源:TDengine 指标、TDengine 标签或无(参见 3.2.2) 数据引用设置 指向 TDengine TSDB 数据源的路径,格式为 连接名/数据库名/表名/列名,可选在列名后追加 :质量列名 指定质量列(例如 连接名/数据库名/表名/值列:质量列) 路径 属性在资产模型中的完整路径(只读,自动生成)))
数据引用设置 指向 TDengine TSDB 数据源的路径,格式为 连接名/数据库名/表名/列名,可选在列名后追加 :质量列名 指定质量列(例如 连接名/数据库名/表名/值列:质量列
路径 属性在资产模型中的完整路径(只读,自动生成)

3.2.3.2 极限值配置

为属性定义运行阈值。每个极限值有名称和数值:

极限值 含义
最小值 物理上可能或可接受的最低值
低低限 低低报警阈值------严重低值状态
低限 低报警阈值------警告低值状态
目标值 期望的设定点或正常运行值
高限 高报警阈值------警告高值状态
高高限 高高报警阈值------严重高值状态
最大值 物理上可能或可接受的最高值

每个极限值还有一个可选的属性字段------您可以将极限值关联到另一个属性而非固定数值,从而实现基于实时状态动态变化的极限值。

3.2.3.3 预测配置

为该属性配置基于 AI 的预测:

选项 说明
TDgpt 使用 TDengine 内置的时序预测引擎(TDgpt)预测未来值
外部 通过已配置的端点连接外部预测服务
不启用预测(默认)

3.2.3.4 附加特性

用于存储属性自定义元数据的自由键值对(如仪表标签、校准日期、传感器型号)。点击 + 添加新条目。

3.2.3.5 配置标志

标志 说明
常量 将该属性标记为常量------其值不随时间变化
隐藏 在默认属性列表中隐藏该属性。隐藏属性仅在启用显示隐藏属性开关时可见。
不包含 将该属性排除在分析和 AI 生成洞察之外

3.2.4 浏览属性

查看某个元素的属性:

  1. 在元素树中选中该元素。
  2. 在元素详情面板中点击属性选项卡。

属性列表显示:名称、描述、当前值、值类型、数据引用类型、最后更新时间和数据引用设置。

使用类别 下拉框按类别筛选。开启显示隐藏属性可查看标记为隐藏的属性。

点击任意属性名称可打开其详情视图。

3.2.5 创建属性

为元素新增属性:

  1. 选中元素并点击属性选项卡。
  2. 点击工具栏中的 + 图标(属性选项卡右上角)。
  3. 填写属性表单:
    • 输入名称描述
    • 选择值类型 ,如需要可设置默认值
    • 选择计量单位分类 ,然后选择默认计量单位显示计量单位
    • 设置显示精度
    • 选择数据引用类型 并输入数据引用设置路径。
    • 可选择展开并配置极限值配置预测配置附加特性
    • 根据需要设置配置标志(隐藏、不包含)。
  4. 点击保存

3.2.6 编辑属性

编辑属性有两种方式:

3.2.6.1 方式一:从属性详情视图编辑

  1. 点击列表中的属性名称,打开其详情视图。
  2. 点击工具栏中的编辑图标(铅笔)。
  3. 修改所需字段后点击保存

3.2.6.2 方式二:从属性列表的 ⋮ 菜单编辑

  1. 在属性列表中,点击属性行上的 菜单。
  2. 选择编辑
  3. 修改所需字段后点击保存

3.2.7 删除属性

删除属性有两种方式:

3.2.7.1 方式一:从属性详情视图删除

  1. 点击属性名称,打开其详情视图。
  2. 点击右上角工具栏中的删除图标(垃圾桶)。
  3. 确认删除。

3.2.7.2 方式二:从属性列表的 ⋮ 菜单删除

  1. 在属性列表中,点击属性行上的 菜单。
  2. 选择删除并确认。

:::warning

删除属性会从 TDengine IDMP 中移除其配置及所有关联元数据。TDengine TSDB 中的底层时序数据不受影响。引用了被删除属性的仪表板、分析或事件规则可能停止正常工作,需要相应更新。

:::

3.2.8 其他属性操作

属性列表中的 菜单还提供以下操作:

操作 说明
查看 打开属性详情视图
复制 复制属性配置。复制的属性可粘贴为同一元素或其他元素上的新属性。
上移 / 下移 在列表中调整属性顺序
添加数据条目 TDengine Metric 属性特有操作,手动录入一个测点,录入的数据将插入到属性引用的 TSDB 表中
添加到趋势图 快速将该属性添加到新的趋势图面板
历史值 查看该属性的历史时序数据

3.2.9 表达式编辑器

表达式编辑器是 IDMP 中凡需配置表达式的地方都会用到的共用 UI 组件------包括公式和字符串构建器属性定义、分析输出属性,以及分析触发条件(预过滤和事件窗口表达式)。点击表达式输入框时,它会以弹窗形式打开。

3.2.9.1 表达式的使用场景

使用位置 用途
公式属性 --- 数据引用设置 定义由同一元素其他属性推导而来的计算属性值
字符串构建器属性 --- 数据引用设置 通过字符串函数组合属性值,构建字符串
分析 --- 输出属性,表达式列 每次分析触发时,计算并写入元素或事件属性的结果
分析 --- 触发条件,预过滤 在触发条件评估前过滤数据行
分析 --- 事件窗口触发,开始/结束条件 定义事件窗口的开启和关闭时机

3.2.9.2 表达式编辑器布局

弹窗分为三个面板:

属性面板(左侧) --- 浏览并将元素属性插入表达式。属性按以下分组展示:

分组 内容
指标 时序指标属性(如电流、电压、功率)
标签 标签(维度)属性------静态元数据字段
其他属性 元素上定义的其他属性
替换参数 系统级替换值,如 TIME(当前本地时间毫秒数)、当前元素名、属性名和模板名

顶部的过滤输入框可按名称搜索。点击属性或参数,将其插入表达式的光标位置。

表达式编辑器(中间) --- 用于编写表达式的代码编辑器。顶部的运算符快捷栏提供常用运算符的一键插入:

text 复制代码
+  -  *  /  =  <  >  >=  <=  !=  <>  &  |

函数面板(右侧) --- 按类别浏览并插入函数。过滤输入框可按函数名搜索。点击函数名将其插入表达式的光标位置。

3.2.9.3 函数分类

分类 示例函数
数学函数 ABS, CEIL, FLOOR, ROUND, SQRT, LOG, POW, SIN, COS, ...
字符串函数 CONCAT, LENGTH, LOWER, UPPER, SUBSTR, TRIM, LTRIM, RTRIM, ...
转换函数 CAST, TO_ISO8601, TO_TIMESTAMP, ...
时间和日期函数 NOW, TODAY, TIMEZONE, TIMETRUNCATE, ...
聚合函数 AVG, COUNT, SUM, STDDEV, STDDEV_POP, PERCENTILE, SPREAD, ELAPSED, HISTOGRAM, ...
选择函数 MAX, MIN, FIRST, LAST, LAST_ROW, TOP, BOTTOM, UNIQUE, MODE, SAMPLE, ...
时序专用函数 MAVG, DERIVATIVE, DIFF, IRATE, CSUM, INTERP, TWA, STATECOUNT, STATEDURATION, ...

3.2.9.4 评估表达式

在支持评估的场景(公式和字符串构建器属性定义)中,编辑器中间面板底部会显示评估 按钮和评估结果 区域。点击评估可对元素当前数据运行表达式,在保存前验证结果。

点击弹窗中的保存 应用表达式,点击取消放弃更改。

3.2.10 属性模板 {#属性模板}

属性模板 将一个标准属性------包括名称、数据类型、计量单位和数据引用绑定------定义为元素模板的一部分。从模板创建元素时,所有属性模板会自动实例化,替换字符串会解析为该元素的实际值。

3.2.10.1 创建属性模板

  1. 基础库中,打开要添加属性的元素模板。
  2. 点击模板详情页顶部的属性模板选项卡。
  3. 点击 + 打开属性模板创建表单。
  4. 填写属性字段并配置数据引用绑定(见下文)。

3.2.10.2 属性模板字段

字段 说明
名称 属性名称
描述 可选描述
配置 附加配置标志(如隐藏、常量)
类别 类别标签
值类型 数据类型:Float、Int、Varchar、Bool 等
默认值 可选默认值
默认计量单位 存储时使用的计量单位
显示计量单位 UI 中显示时使用的计量单位(可与存储单位不同)
显示精度 UI 中显示的小数位数
数据引用类型 属性与 TDengine TSDB 数据的绑定方式(见下文)
数据引用设置 解析后的绑定路径,如 TDengine/idmp_sample_utility/${KEYWORD1}/current
极限值配置 可选的高/低报警阈值
预测配置 可选的 TDgpt 预测配置

3.2.10.3 数据引用绑定

数据引用类型决定属性如何连接到 TDengine TSDB 中的时序数据:

数据引用类型 用途
无 TSDB 绑定------属性仅保存静态或计算值。
TDengine 指标 将属性绑定到 TDengine 超级表中的时序指标列。
TDengine 标签 将属性绑定到 TDengine 超级表中的标签列。

选择 TDengine 指标TDengine 标签 后,通过指定 TDengine 连接、数据库、子表名(使用 ${KEYWORD1} 等替换字符串,使每个元素绑定到各自的表)和列名来配置绑定。数据引用设置的形式为:

text 复制代码
TDengine/<数据库名>/${KEYWORD1}/<列名>

点击检查可验证绑定是否能正确解析。

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

相关推荐
机器之心2 小时前
京东卷出新高度!硬刚「复杂指令」长时长、自由态数字人直播终于丝滑了
人工智能·openai
机器之心2 小时前
龙虾太难养?发布的SOLO独立端,可能是你要的AI生产力
人工智能·openai
得物技术2 小时前
Redis 自动化运维最佳实践|得物技术
大数据·redis
nancy_princess2 小时前
attention基础概念1
人工智能
做个文艺程序员2 小时前
华为昇腾NPU部署开源大模型全攻略(以Qwen3-8B为例)
人工智能·深度学习·华为
爱丽_3 小时前
Redis 分布式锁:SET NX、过期时间、续租、可重入、Redlock 与坑
数据库·redis·分布式
智算菩萨3 小时前
【论文精读】Automated machine learning for positive-unlabelled learning
论文阅读·人工智能·机器学习·论文笔记·贝叶斯优化·自动机器学习·无标签学习
IT小崔3 小时前
SqlSugar 使用教程
数据库·后端
小程故事多_803 小时前
破解Agent“半途摆烂”困局,OpenDev凭Harness架构,撕开Code Agents的工程化真相
人工智能·架构·aigc·harness