3.2 属性
属性定义了元素的可测量特性。它是物理资产行为与 TDengine TSDB 中存储数据之间的桥梁——将原始数值转化为有名称、有类型、有物理单位的工程量。
3.2.1 什么是属性
属性是元素的一个命名特性,用于保存或引用某个值。对于泵元素,属性可能包括流量、出口压力、电机温度和运行状态;对于智能电表,属性可能包括电流、电压、功率和设备 ID。
属性为原始数据赋予了上下文。用户和应用程序无需通过技术字段名查询数据库列,而是可以在清晰的资产层次结构中,通过有意义的属性名来引用数据。
3.2.2 属性类型
数据引用类型决定了属性值的来源。共有四种类型:
TDengine 指标
引用 TDengine TSDB 表中的指标列(时序测量列)。属性值随新数据写入而实时更新。适用于随时间变化的值,如温度、压力、流量、电流、电压等。
数据引用设置的格式为:
连接名/数据库名/表名/列名
示例:TDengine/idmp_sample_utility/em-12/current
TDengine 标签
引用 TDengine TSDB 表中的标签值。标签是附加在表上的静态元数据字段(如设备 ID、位置或安装楼层)。适用于值来源于 TSDB 标签而非时序列的属性。
格式与 TDengine 指标相同:
连接名/数据库名/表名/标签名
示例:TDengine/idmp_sample_utility/em-17/location
公式
计算型属性,其值由引用同一元素其他属性的表达式推导得出。表达式会被转换为 TDengine SQL 表达式,并在 TDengine TSDB 上执行。输出必须为数值类型。
示例表达式:
log(current) * voltage + 10
可使用特殊替换参数 TIME,它会被替换为当前本地时间对应的毫秒数。您可以在表达式编辑器中点击评估,在保存前测试并验证公式。完整的表达式编辑器说明请参见 3.2.9 节。
公式属性只能引用同一元素的属性。如需使用其他元素的值,请在当前元素上新增一个属性,使其指向相同的数据源。
字符串构建器
与公式类似,但输出为字符串。输入可以是当前元素的任意属性(不限于数值类型)。常用函数包括:
CONCAT(...)— 拼接多个字符串SUBSTR(str, start, length)— 截取子字符串CAST(value AS varchar)— 将非字符串类型转换为字符串
除 TIME 外,字符串构建器还支持更多替换参数,例如当前元素名、当前属性名和模板名。
示例表达式:
不能使用加号拼接字符串,请使用 CONCAT() 函数。CONCAT() 的每个参数都必须是字符串类型,请先使用 CAST() 将数值属性转换为字符串再传入 CONCAT()。
3.2.3 属性特性
每个属性都具有以下可配置特性:
基础字段
| 特性 | 说明 |
|---|---|
| 名称 | 属性在其元素内的唯一名称 |
| 描述 | 对该属性所测量或代表内容的可读说明 |
| 类别 | 用于在属性选项卡中对属性进行分组和筛选的一个或多个标签 |
| 值类型 | 值的数据类型:Float、Double、Int、BigInt、TinyInt、SmallInt、Bool、Nchar、Varchar、Timestamp |
| 默认值 | 当数据源无可用数据时返回的值 |
| 计量单位分类 | 物理量类别(如电流、温度、压力)。选择计量单位分类后,默认计量单位和显示计量单位的可用选项会相应筛选。 |
| 默认计量单位 | 属性值存储时使用的单位(如安培、°C、bar) |
| 显示计量单位 | 在面板和仪表板中显示值时使用的单位,可以与默认计量单位不同——IDMP 会自动进行换算。 |
| 显示精度 | 显示值时保留的小数位数 |
| 数据引用类型 | 属性值的来源:TDengine 指标、TDengine 标签或无(参见 3.2.2) |
| 数据引用设置 | 指向 TDengine TSDB 数据源的路径,格式为 数据库/表名/列名 |
| 路径 | 属性在资产模型中的完整路径(只读,自动生成) |
极限值配置
为属性定义运行阈值。每个极限值有名称和数值:
| 极限值 | 含义 |
|---|---|
| 最小值 | 物理上可能或可接受的最低值 |
| 低低限 | 低低报警阈值——严重低值状态 |
| 低限 | 低报警阈值——警告低值状态 |
| 目标值 | 期望的设定点或正常运行值 |
| 高限 | 高报警阈值——警告高值状态 |
| 高高限 | 高高报警阈值——严重高值状态 |
| 最大值 | 物理上可能或可接受的最高值 |
每个极限值还有一个可选的属性字段——您可以将极限值关联到另一个属性而非固定数值,从而实现基于实时状态动态变化的极限值。
预测配置
为该属性配置基于 AI 的预测:
| 选项 | 说明 |
|---|---|
| TDgpt | 使用 TDengine 内置的时序预测引擎(TDgpt)预测未来值 |
| 外部 | 通过已配置的端点连接外部预测服务 |
| 无 | 不启用预测(默认) |
附加特性
用于存储属性自定义元数据的自由键值对(如仪表标签、校准日期、传感器型号)。点击 + 添加新条目。
配置标志
| 标志 | 说明 |
|---|---|
| 常量 | 将该属性标记为常量——其值不随时间变化 |
| 隐藏 | 在默认属性列表中隐藏该属性。隐藏属性仅在启用显示隐藏属性开关时可见。 |
| 不包含 | 将该属性排除在分析和 AI 生成洞察之外 |
3.2.4 浏览属性
查看某个元素的属性:
- 在元素树中选中该元素。
- 在元素详情面板中点击属性选项卡。
属性列表显示:名称、描述、当前值、值类型、数据引用类型、最后更新时间和数据引用设置。
使用类别下拉框按类别筛选。开启显示隐藏属性可查看标记为隐藏的属性。
点击任意属性名称可打开其详情视图。
3.2.5 创建属性
为元素新增属性:
- 选中元素并点击属性选项卡。
- 点击工具栏中的 + 图标(属性选项卡右上角)。
- 填写属性表单:
- 输入名称和描述。
- 选择值类型,如需要可设置默认值。
- 选择计量单位分类,然后选择默认计量单位和显示计量单位。
- 设置显示精度。
- 选择数据引用类型并输入数据引用设置路径。
- 可选择展开并配置极限值配置、预测配置和附加特性。
- 根据需要设置配置标志(隐藏、不包含)。
- 点击保存。
3.2.6 编辑属性
编辑属性有两种方式:
方式一:从属性详情视图编辑
- 点击列表中的属性名称,打开其详情视图。
- 点击工具栏中的编辑图标(铅笔)。
- 修改所需字段后点击保存。
方式二:从属性列表的 ⋮ 菜单编辑
- 在属性列表中,点击属性行上的 ⋮ 菜单。
- 选择编辑。
- 修改所需字段后点击保存。
3.2.7 删除属性
删除属性有两种方式:
方式一:从属性详情视图删除
- 点击属性名称,打开其详情视图。
- 点击右上角工具栏中的删除图标(垃圾桶)。
- 确认删除。
方式二:从属性列表的 ⋮ 菜单删除
- 在属性列表中,点击属性行上的 ⋮ 菜单。
- 选择删除并确认。
删除属性会从 TDengine IDMP 中移除其配置及所有关联元数据。TDengine TSDB 中的底层时序数据不受影响。引用了被删除属性的仪表板、分析或事件规则可能停止正常工作,需要相应更新。
3.2.8 其他属性操作
属性列表中的 ⋮ 菜单还提供以下操作:
| 操作 | 说明 |
|---|---|
| 查看 | 打开属性详情视图 |
| 复制 | 复制属性配置。复制的属性可粘贴为同一元素或其他元素上的新属性。 |
| 上移 / 下移 | 在列表中调整属性顺序 |
| 添加到趋势图 | 快速将该属性添加到新的趋势图面板 |
| 历史值 | 查看该属性的历史时序数据 |
3.2.9 表达式编辑器
表达式编辑器是 IDMP 中凡需配置表达式的地方都会用到的共用 UI 组件——包括公式和字符串构建器属性定义、分析输出属性,以及分析触发条件(预过滤和事件窗口表达式)。点击表达式输入框时,它会以弹窗形式打开。
表达式的使用场景
| 使用位置 | 用途 |
|---|---|
| 公式属性 — 数据引用设置 | 定义由同一元素其他属性推导而来的计算属性值 |
| 字符串构建器属性 — 数据引用设置 | 通过字符串函数组合属性值,构建字符串 |
| 分析 — 输出属性,表达式列 | 每次分析触发时,计算并写入元素或事件属性的结果 |
| 分析 — 触发条件,预过滤 | 在触发条件评估前过滤数据行 |
| 分析 — 事件窗口触发,开始/结束条件 | 定义事件窗口的开启和关闭时机 |
表达式编辑器布局
弹窗分为三个面板:
属性面板(左侧) — 浏览并将元素属性插入表达式。属性按以下分组展示:
| 分组 | 内容 |
|---|---|
| 指标 | 时序指标属性(如电流、电压、功率) |
| 标签 | 标签(维度)属性——静态元数据字段 |
| 其他属性 | 元素上定义的其他属性 |
| 替换参数 | 系统级替换值,如 TIME(当前本地时间毫秒数)、当前元素名、属性名和模板名 |
顶部的过滤输入框可按名称搜索。点击属性或参数,将其插入表达式的光标位置。
表达式编辑器(中间) — 用于编写表达式的代码编辑器。顶部的运算符快捷栏提供常用运算符的一键插入:
+ - * / = < > >= <= != <> & |
函数面板(右侧) — 按类别浏览并插入函数。过滤输入框可按函数名搜索。点击函数名将其插入表达式的光标位置。
函数分类
| 分类 | 示例函数 |
|---|---|
| 数学函数 | 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.10 属性模板
属性模板将一个标准属性——包括名称、数据类型、计量单位和数据引用绑定——定义为元素模板的一部分。从模板创建元素时,所有属性模板会自动实例化,替换字符串会解析为该元素的实际值。
创建属性模板
- 在基础库中,打开要添加属性的元素模板。
- 点击模板详情页顶部的属性模板选项卡。
- 点击 + 打开属性模板创建表单。
- 填写属性字段并配置数据引用绑定(见下文)。
属性模板字段
| 字段 | 说明 |
|---|---|
| 名称 | 属性名称 |
| 描述 | 可选描述 |
| 配置 | 附加配置标志(如隐藏、常量) |
| 类别 | 类别标签 |
| 值类型 | 数据类型:Float、Int、Varchar、Bool 等 |
| 默认值 | 可选默认值 |
| 默认计量单位 | 存储时使用的计量单位 |
| 显示计量单位 | UI 中显示时使用的计量单位(可与存储单位不同) |
| 显示精度 | UI 中显示的小数位数 |
| 数据引用类型 | 属性与 TDengine TSDB 数据的绑定方式(见下文) |
| 数据引用设置 | 解析后的绑定路径,如 TDengine/idmp_sample_utility/${KEYWORD1}/current |
| 极限值配置 | 可选的高/低报警阈值 |
| 预测配置 | 可选的 TDgpt 预测配置 |
数据引用绑定
数据引用类型决定属性如何连接到 TDengine TSDB 中的时序数据:
| 数据引用类型 | 用途 |
|---|---|
| 无 | 无 TSDB 绑定——属性仅保存静态或计算值。 |
| TDengine 指标 | 将属性绑定到 TDengine 超级表中的时序指标列。 |
| TDengine 标签 | 将属性绑定到 TDengine 超级表中的标签列。 |
选择 TDengine 指标或 TDengine 标签后,通过指定 TDengine 连接、数据库、子表名(使用 ${KEYWORD1} 等替换字符串,使每个元素绑定到各自的表)和列名来配置绑定。数据引用设置的形式为:
TDengine/<数据库名>/${KEYWORD1}/<列名>
点击检查可验证绑定是否能正确解析。









