TDengine IDMP 高级功能(4. 元素引用)

元素引用

对于同一个数据资产,为便于各种组织管理形式,给不同角色的用户提供不同的查看分析数据的视角,一个元素也可以通过引用的方式添加到其他元素的下面做为子元素,称之为元素引用 (Element Reference)。因此一个元素可以有多个父元素,多个引用。通过引用,IDMP 并不会物理的生成一个新的元素,类似文件系统里的 link 概念。

在一个树状结构里创建一个新元素时,该元素便有了第一个引用,因此任何一个元素的引用数总数是大于零的。当元素只有一个引用的时候,一般不会说这个唯一的引用是元素引用,而是直接称之为元素。

一个元素可以被用户直接删除,或当它的父元素被删除时,间接的被删除。由于一个元素的引用数可能大于 1,当您删除在某一个位置的元素时,这个元素不一定被真正删除了。只有当元素的引用总数为 0 时,该元素才被彻底删除或不存在了。为明确元素删除行为,IDMP 对元素引用定义了三种类型,包括强引用、包含引用和弱引用。

强引用

最常用的引用是强引用(Strong)(PI system 里称之为 Parent-Child。创建一个元素时,缺省的引用就是强引用。只要一个元素的强引用的个数大于 0,该元素就不会真正被删除,一定出现在某个树状结构里。如下图:

Wind Turbine-1 与 Wind Turbines,与 Site A, 都是强关系。当删除了元素 Site A 下的 Wind Turbine-1 时,Wind Turbine-1 并没有真正被删除,它还存在于元素 Wind Turbines 下。

包含引用

如果一个元素是另一个元素的一部分,比如一台风机上的电机,那么在这个风机元素和这个电机之间是包含关系 (Composition),这个元素的引用是包含引用。包含引用表示该元素从属于某个父元素,它是一种比强引用更强的引用关系。当在一个元素下创建一个新的子元素时,可以选择包含引用。当把一个包含引用的元素的父元素删除时,该元素被彻底删除,无论该元素是否还存在其他引用,因此它在任何树状结构里都不存在了。如下图:

元素 Motor-A 有两个父元素,其中 Wind Turbine-1 和 Motor-A 之间是包含引用关系。当 Wind Turbine-1 被删除时,所有出现 Motor-A 的地方都被删除了。

弱引用

当您想让两个元素有父子层级关系但是这个关系不影响子元素的生命周期时,可以选择弱引用(Weak)。比如 Wind Turbine-1 在 Wind Turbines 下面是弱引用,但在 Site A 下面是强引用,如果删除 Wind Turbines 下面的 Wind Turbine-1, Site A 下面的 Wind Turbine-1 继续存在,不受任何影响。

但是,如果您删除 Site A 下面的 Wind Turbine-1, 那么 Wind Turbines 下面的 Wind Turbine-1 也被自动删除,因为 Wind Turbine-1 已经不存在有强引用或包含引用了,那么所有弱引用也要被删除。

引用的规则

总结起来,对于元素引用有几个规则:

  1. 任何一个元素被创建时,它与父元素的关系,用户可以选择强引用或包含引用。
  2. 任何一个元素可以有 0 到多个弱引用,弱引用可以随意被删除,不影响其他引用或元素的存在
  3. 任何一个元素至多有一个包含引用
  4. 如果一个元素没有包含引用,那么它的强引用的数量必须大于 0
  5. 如果一个包含引用的父元素被删除,该元素的所有引用都需要被自动删除,该元素被彻底删除了。
  6. 一个元素引用被删除后,如果该元素的强引用及包含引用的总数等于 0,该元素所有的弱引用也需要被自动删除,这个元素就被彻底删除了。

当在一个树状结构里删除一个元素或元素引用,它的子元素或子元素引用也需要被删除。但该元素以及子元素是否继续存在,则要依赖上面的规则做判断。

在 IDMP 的设计里,一个树状结构就是一个分析维度。为避免实现的复杂度,在同一个树状结构下,禁止将一个元素引用在不同的路径里。一个元素可以出现在两个甚至更多个的树状结构里,但是在一个树状结构里,一个元素只能出现一次。在后续的 IDMP 产品规划里,今后会容许一个元素在同一个树状结构里被引用多次。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。

它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

相关推荐
峥无9 分钟前
SQL性能调优:从执行计划看懂索引的使用与失效
数据库·sql
hey you~9 分钟前
2026年北上广深呼叫中心系统现状:AI Agent落地一年后,技术栈被重构了吗?
大数据·人工智能·ai agent·高并发架构·呼叫中心系统·asr优化·北上广深
一次旅行17 分钟前
【AI技术_工具】用 MCP 把本地工具接入 Claude_Cursor,让 AI 真正摸到你的数据
大数据·人工智能·python
ws20190720 分钟前
从零件到核心:AUTO TECH China 2026广州汽车零部件展的产业新叙事
大数据·人工智能·科技·汽车
微硬创新20 分钟前
汽车制造产线协同:耐达讯PROFINETDeviceNet网关在机器人通信中的应用
人工智能·物联网·网络协议·自动化·汽车·制造·信息与通信
xyj291759641120 分钟前
在Trae中配置数据库MCP
数据库·ai·mcp
廋到被风吹走21 分钟前
【AI】【Claude】从 Prompt 到 Agent 的完整进阶地图
数据库·人工智能·prompt
数智化管理手记23 分钟前
智能财务能替代人工核算吗?智能财务核心功能包含哪些?
大数据·网络·数据库·数据挖掘·精益工程
zandy101125 分钟前
地址解析厂商推荐:分行业地址服务能力选型与技术分析
大数据·运维·人工智能
财迅通Ai25 分钟前
“光纤传感+AI”双轮驱动加速成长,光格科技步入资产数字化运维快车道
运维·人工智能·科技·光格科技