Concepts
Element
IDMP organizes data using a hierarchical tree structure, where each node in the tree is called an Element. An element represents either a physical or logical entity. It can be a tangible physical device (such as a car), a subsystem of that device (such as a car's braking system), or even a single sensor. It can also represent a logical entity, such as a factory, a corporation, or a city.
Each element contains its own general descriptive information, attributes, real-time analytics, dashboards, and notifications. Because the relationships between elements are represented in a tree structure, each element can have parent and child elements. An element may have zero or more child elements, zero or more parent elements, zero or more attributes, zero or more analytics, zero or more dashboards, zero or more boards, and one notification template.
Child Element/Parent Element
An element can have zero or more child elements. For example, a wind turbine has subsystems such as the rotor system, drivetrain, power generation system, yaw system, control system, tower and foundation, and auxiliary systems. These subsystems are all child elements of the wind turbine. Child elements can also have their own child elements—for instance, the turbine’s power generation system may include a generator and a frequency converter as its children. A wind farm consists of multiple wind turbines, and each turbine is a child element of the wind farm.
Except for the root node, every element has at least one parent element. For example, the wind farm is the parent of the turbines, and each turbine is the parent of its power generation system. Since elements can also define references, an element may have one or more parent elements. Element referencing will be covered in a later advanced topic.
Attribute
An element can have zero or more attributes. These attributes can be configuration items, static tag values, dynamic time-series data, or result data generated from analytics. In IDMP's design, the actual value of an element's attribute can either be stored directly within the IDMP system, or it can be referenced dynamically from external sources, without being stored in IDMP.
For metric-type attributes, users can configure upper and lower limits, target values, display units, storage units, the number of decimal places for display, as well as forecasting settings.
Analysis
An element can have zero or more real-time analytics. These analytics are fully implemented based on TDengine’s stream processing engine. Stream processing can be triggered by sliding windows, event windows, state windows, count windows, or session windows. Additionally, a newly written data point can also trigger computation. These triggers are based on one or more attributes of the element, and those attributes must be configured as data references of type TDengine Metric. The computations can involve expressions, aggregations over time windows, or aggregations across multiple elements. The results can be written back to an attribute of the element for storage, and they can also trigger events.
Event
Every element is associated with events, which are generated by the element’s analytics. An event includes a start and end time, and it may also include attribute values or stream processing results that the user wishes to record, making it easier to analyze the event afterward. Events can be assigned a severity level and marked as requiring acknowledgment if needed. Based on the configuration of the notification template, messages can be sent to the appropriate personnel according to the severity level.
Panel/Dashboard
An element can have zero or more boards, and each board contains one or more panels. Panels can also exist independently of boards. Each panel provides a visualization based on the attributes of an element or its child elements, and can include various types such as trend charts, bar charts, pie charts, tables, statistical summaries, gauges, and rich text.
Notification Rule
For events, notifications can be sent to alert users. The content of the notification is customizable and can include any information the user wishes to provide. Each element has only one notification template, but for different event types, the severity level required to trigger a notification can be configured individually.
Element Template
In the real world, there are often multiple instances of the same type of device or entity. These instances share the same attributes, require the same analytics, and use the same dashboards and panels. To address this, TDengine IDMP introduces the concept of element templates. For elements of the same type, a template is created first, and then individual elements are instantiated from the template. This approach promotes data standardization and greatly improves configuration efficiency. An element template includes attribute templates, analytics templates, panel templates, dashboard templates, and notification rule templates.