Skip to content

Factory Data Foundation

Available inEdgeCloudEnterprise

In Tier0, factory data is organized into clear, tree-structured models based on UNS (Unified Namespace) methodology, forming a unified data foundation.

  • The broker receives and sends data through model topics.
%%{init: {"flowchart": {"defaultRenderer": "elk", "nodeSpacing": 32, "rankSpacing": 48, "diagramPadding": 8}}}%%
flowchart TB

source["Data Source / Consumer"]

subgraph UNS["Unified Namespace"]
    direction LR

    Model["Model<br/>Defines paths,<br/>topics, and payloads"]
    Broker["Broker<br/>Handles data exchange"]
    Storage["Storage<br/>Persists data"]

    Model <--> Broker
    Broker --> Storage
end

source <-- "MQTT / API" --> UNS

classDef broker fill:#F7FAF2,stroke:#D8E6B8,stroke-width:1px,color:#2A2A2A,stroke-dasharray:5 5
class Broker broker
  • Models are categorized into three types, Metric, State, and Action.
  • Data is stored in different databases based on model type.
    • Action/State: JSONB (PostgreSQL)
    • Metric: Real-time data (TSDB)
    %%{init: {
      "themeVariables": {
        "fontSize": "14pt"
      },
      "flowchart": {
        "defaultRenderer": "elk",
        "nodeSpacing": 40,
        "rankSpacing": 56,
        "diagramPadding": 8
      }
    }}%%
    flowchart LR
    subgraph Model["Model Type"]
        direction TB
        metric["Metric<br/>High-frequency numeric data"]
        state["State<br/>Current facts or status"]
        action["Action<br/>Commands or requested operations"]
    end
    subgraph Storage["Storage"]
        direction TB
        tsdb["TSDB<br/>Time-series storage<br/>for Metric history"]
        jsonb["JSONB<br/>Document storage<br/>for State and Action"]
    end
    metric --> tsdb
    state --> jsonb
    action --> jsonb

The UNS broker is the platform component that receives and sends data through MQTT or OpenAPI based on data models.

  • By MQTT: The complete path of each node in the model tree works as the MQTT topic address to pass the message payload.
  • By OpenAPI: Perform CRUD commands on data models through HTTP requests.

Industrial data changes at different frequencies and serves different purposes, so Tier0 separates UNS models into three fixed types.

Type Object Example
METRIC Designed for high-frequency data that is collected continuously and needs time-series storage. Machine temperature/pressure/voltage
STATE Designed for data that changes less often and describes the current condition or fact of an object. Machine operational status
ACTION Designed for lower-frequency command data that records what an external system or operator should execute. Start batch, stop machine

Each UNS model contains path, topic, and payload. Together, they form a tree structure that carries business context and transmits industrial data.

  • Path/Topic: The path represents data ownership, and the topic carries the message payload. Together, they define the model address.
  • Payload: The message payload held by the topic. It is JSON in a key-value format and defines the model data. For example, a model in UNS looks like the tree displayed below:
Terminal window
Factory_A
└── Site_01
└── SMT_Line_1
└── Metric
└── Machine_001
  • Path: Factory_A/Site_01/SMT_Line_1/Metric
  • Topic: /Machine_001.
  • Payload
    Terminal window
    "temperature": 85,
    "vibration": 2.8,

Tier0 uses PostgreSQL to store data. Different data types change at different rates and have different storage requirements.

Data Type Storage Description
METRIC TSDB Optimized for high-frequency measurements such as temperature and pressure. Each topic includes default fields: timestamp and quality.
STATE PostgreSQL Stores machine or system states in a flexible JSONB format.
ACTION PostgreSQL Stores commands or actions in a flexible JSONB format.