コンテンツにスキップ

工場データ基盤

対応エディション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 は MetricStateAction の 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 として timestampquality が含まれます。
STATE PostgreSQL machine または system state を柔軟な JSONB 形式で保存します。
ACTION PostgreSQL command または action を柔軟な JSONB 形式で保存します。