建立中繼資料 bucket

本指南說明如何建立中繼資料 bucket。您可以使用 Configuration API 或 Manufacturing Data Engine (MDE) 網頁介面建立中繼資料 bucket。

事前準備

開始建立 bucket 前,請先閱讀 MDE 文件中的「如何建立中繼資料模型」一節。

值區命名

建立 bucket 時,名稱在 MDE 部署作業中不得重複。值區名稱不得包含空格或特殊字元,例如 &@%

建立中繼資料 bucket

您可以使用終端機或控制台介面建立中繼資料 bucket。

REST

執行下列 REST API 要求:

POST /metadata/v1/buckets

  {
    "name": "BUCKET_NAME",
    "type": "BUCKET_TYPE",
    "schema": "BUCKET_SCHEMA",
    "provider": "local",
    "attributes": {
      "instanceOverwriteMode": "INSTANCE_OVERWRITE_MODE"
    }
  }

更改下列內容:

  • BUCKET_NAME:要建立的 bucket 名稱。
  • BUCKET_TYPE:要建立的 bucket 類型。必須是 TAGRECORDLOOKUPTAG 值區中繼資料例項的 natural_key 必須是標記名稱。RECORD bucket 中中繼資料例項的 natural_key 可以是任何鍵。LOOKUP 值區中繼資料執行個體的 natural_key 可以是任何鍵,但記錄無法參照查閱值區中的執行個體,且執行個體不會寫入任何資料接收器。查閱值區僅做為參考資料的來源,剖析器可使用 Whistle 函式 lookupByKey 擷取這些資料,並用於擴充記錄。
  • BUCKET_SCHEMA:buckets 的 JSON 結構定義。結構定義會限制可在 bucket 中建立的執行個體。
  • INSTANCE_OVERWRITE_MODETRUEFALSE。判斷是否要合併提供的執行個體與特定自然鍵的最新執行個體,藉此建立新執行個體,或是按照提供的方式建立新執行個體。

控制台

如要使用控制台新增中繼資料 bucket,請按一下「Cloud Management」(雲端管理) 專區頂端選單的「METADATA」(中繼資料) 部分。「中繼資料」設定頁面會列出 MDE 執行個體中的可用 Bucket

「Types」部分 - 中繼資料清單

系統會針對每個 Bucket 提供以下資訊:

  • 名稱:bucket 的名稱。每個名稱都不得重複。
  • 版本:buckets 的版本。系統預設只會顯示最新可用版本。如要顯示舊版,請取消勾選「僅顯示最新版本」核取方塊。
  • Bucket 類型:顯示 bucket 類型。系統支援三種不同的 bucket 類型:
    1. 標記:符合指定標記的 bucket。這些屬性會與類型建立關聯,並由該類型的所有標記繼承。這些條件可在標記層級例項化,因為它們的目的是要限定變數本身,而非任何特定記錄。標記 Bucket 的範例可以是標記的「資產階層」或「計量單位」。
    2. 記錄:記錄值區會為特定標記的每筆記錄提供資格。這些欄位也會與類型建立關聯,並由標記繼承,但會在記錄層級例項化。每個 Record 應在有限的 Bucket 執行個體集中有不同的值。記錄值區的例子可以是「班別」或「作業員姓名」。
    3. 參照:定義使用者定義的鍵和執行個體之間的一組鍵/值組合的 bucket。

如要建立新的「Bucket」(值區),請按一下「Add new metadata bucket」(新增中繼資料值區)

「類型」部分 - 類型清單

填寫側邊面板中顯示的表單,並提供必要的 Bucket 參數:

  • 值區名稱:使用者定義的值區專屬名稱。
  • 值區類型:定義 Bucket 類別。
  • 執行個體更新模式:指定中繼資料值區的執行個體更新類型:
    1. 執行個體覆寫:即使現有執行個體不完整,也會由邊緣接收到的最新執行個體取代。
    2. 執行個體合併:現有執行個體會與從邊緣接收的最新執行個體合併。系統只會替換新邊緣執行個體中包含的屬性。
  • JSON 結構定義:定義 bucket 結構的 JSON Schema。必須是有效的結構定義。系統會根據 bucket 結構定義驗證所有中繼資料執行個體。

以下是預設設定套件提供的預設中繼資料 bucket JSON Schema 範例:

{
  "$id": "https://gmde.cloud/tag.schema.json",
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "title": "Tag metadata bucket",
  "type": "object",
  "properties": {
    "datatype": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "registerId": {
      "type": "string"
    },
    "edgeTagName": {
      "type": "string"
    },
    "tagName": {
      "description": "Tag name",
      "type": "string"
    },
    "deviceID": {
      "type": "string"
    },
    "deviceName": {
      "type": "string"
    },
    "deviceMetadata": {
      "type": "object"
    }
  },
  "required": ["tagName"],
  "additionalProperties": false
}