コンテンツにスキップ

工場データ基盤

対応エディションEdgeCloudEnterprise

Tier0 では、工場データは UNS(Unified Namespace)の考え方に基づき、明確なツリー構造のモデルとして整理され、統一されたデータ基盤を形成します。

  • Broker は model topic を通じてデータを受信、送信します。
  %%{init: {"flowchart": {"defaultRenderer": "elk", "nodeSpacing": 32, "rankSpacing": 48, "diagramPadding": 8}}}%%
  flowchart TB
  source["データソース / コンシューマー"]
  subgraph UNS["Unified Namespace"]
      direction LR
      Model["Model<br/>path、topic、payload を定義"]
      Broker["Broker<br/>データ交換を処理"]
      Storage["ストレージ<br/>データを永続化"]
      Model <--> Broker
      Broker --> Storage
  end
  source <-- "MQTT / API" --> Broker
  classDef broker fill:#F7FAF2,stroke:#D8E6B8,stroke-width:1px,color:#2A2A2A,stroke-dasharray:5 5
  class Broker broker
  • Model は Metric、State、Action の 3 種類に分類されます。
  • データは model type に応じて異なるデータベースに保存されます。
    • Action/State: JSONB (PostgreSQL)
    • Metric: リアルタイムデータ(TSDB)
    %%{init: {
      "themeVariables": {
        "fontSize": "14pt"
      },
      "flowchart": {
        "defaultRenderer": "elk",
        "nodeSpacing": 40,
        "rankSpacing": 56,
        "diagramPadding": 8
      }
    }}%%
    flowchart LR
    subgraph Model["モデルタイプ"]
        direction TB
        metric["Metric<br/>高頻度の数値データ"]
        state["State<br/>現在の事実または状態"]
        action["Action<br/>コマンドまたは要求操作"]
    end
    subgraph Storage["ストレージ"]
        direction TB
        tsdb["TSDB<br/>Metric 履歴の時系列ストレージ"]
        jsonb["JSONB<br/>State と Action のドキュメントストレージ"]
    end
    metric --> tsdb
    state --> jsonb
    action --> jsonb

UNS broker は、データモデルに基づいて MQTT または OpenAPI 経由でデータを受信、送信するプラットフォームコンポーネントです。

  • MQTT の場合:model tree 内の各 node の完全な path が topic address として機能し、message payload を渡します。
  • OpenAPI の場合:HTTP request を通じて data model に対する CRUD コマンドを実行します。

産業データは変化頻度と用途が異なるため、Tier0 は UNS model を 3 つの固定 type に分けます。

Type Object Example
METRIC 継続的に収集され、時系列保存が必要な高頻度データ向けに設計されています。 Machine temperature/pressure/voltage
STATE 変化頻度が比較的低く、object の現在状態または事実を表すデータ向けに設計されています。 Machine operational status
ACTION 外部システムまたは operator が実行すべき内容を記録する低頻度の command data 向けに設計されています。 Start batch, stop machine

各 UNS model には path、topic、payload が含まれます。これらが一緒になって、business context を持ち産業データを運ぶ tree 構造を形成します。

  • Path/Topic:path はデータの所属を表し、topic は message payload を運びます。これらが model address を定義します。
  • Payload:topic が保持する message payload です。key-value 形式の JSON で、model data を定義します。

たとえば、UNS 内の model は次のような tree になります。

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 は PostgreSQL を使ってデータを保存します。データ type によって変化速度と保存要件が異なります。

Data Type Storage Description
METRIC TSDB 温度や圧力などの高頻度測定値に最適化されています。各 topic には default field として timestamp と quality が含まれます。
STATE PostgreSQL machine または system state を柔軟な JSONB 形式で保存します。
ACTION PostgreSQL command または action を柔軟な JSONB 形式で保存します。