檔案內容
本頁說明 Manufacturing Data Engine (MDE) 套件中每個設定套件資料夾的內容。
在每個設定套件資料夾中,MDE 預期會找到每個設定物件的 JSON 檔案。如要建立兩個值區,則應有兩個不同的檔案。系統會忽略檔案名稱。 不過,建議您以要建立的設定物件名稱為檔案命名。每個物件的實際 JSON 結構定義取決於要建立的設定實體類型,但會與對應 API 回應的 JSON 結構定義相符。
如要進一步整理設定套件,您可以參照要嵌入特定欄位下方檔案的其他 JSON 檔案。舉例來說,下列 JSON 會指定具有結構定義的 MDE 值區,而結構定義是在另一個 JSON 檔案中定義。這有助於提升設定套件的整體可讀性和可維護性。
{
"type": "TAG",
"name": "second-tag-bucket",
"attributes": {
"instanceOverwriteMode": "true"
},
"versions": [
{
"version": 1,
"schema": "'{{schemas/generic-schema.json}}'",
"provider": "local",
}
]
}
如要參照其他檔案,可以使用 {{relative-path/file.json}} 指令,其中包含需要納入現有檔案的檔案相對路徑。MDE 會解析檔案,並將 JSON 內容做為具有參照指令的欄位值。上例中 schema 欄位的值會包含與檔案內容相符的內嵌 JSON 子物件。
對於特定物件,您需要將 JSON 內容嵌入為字串。舉例來說,bucket 物件中的 schema 欄位需要以字串形式嵌入 bucket 結構定義,在這種情況下,參照指令應以單引號 ' 括住,告訴 MDE 以未處理的內容嵌入字串;參照指令會是:'{{relative-path/file.json}}'。
參照的檔案可以位於任何目錄,您可以建立不同目錄來整理檔案。舉例來說,上一個範例中名為 schemas 的目錄是任意資料夾結構,可將常見檔案分組。可嵌入的檔案類型為 Whistle 指令碼的 JSON 或 WSTL。
以下是每個 MDE 實體的設定範例。
值區
本節將分享 MDE 值區的設定範例。
{
"type": "TAG",
"name": "second-tag-bucket",
"attributes": {
"instanceOverwriteMode": "true"
},
"versions": [
{
"version": 1,
"schema": "'{{schemas/generic-schema.json}}'",
"provider": "local"
}
]
}
擷取規格
本節將分享 MDE 擷取規格的設定範例。
{
"name": "csv-full-ingestion-specification",
"source": "CSV",
"folderName": "test-csv-folder",
"separator": ",",
"skipRows": 10,
"headers": {
"headerNames": {
"names": [
"one",
"two",
"three"
]
}
},
"insertMetadata": true,
"disabled": false
}
訊息類別
本節提供 MDE 訊息類別的設定範例。
{
"name": "default-numeric-message-class",
"priority": 970,
"expression": "#root.event['value'] instanceof T(Number) && #root.event['timestamp'] != null && #root.event['tagName'] != null && #root.event['cluster'] == null"
}
中繼資料執行個體
本節提供 MDE 中繼資料執行個體的設定範例。
{
"bucketReference": {
"bucketName": "default-tag-bucket",
"bucketType": "TAG",
"version": 1
},
"naturalKey": "cloud-natural-key",
"instance": {
"site": "simulated-site",
"factory": "test-factory"
}
}
剖析器
本節將分享 MDE 剖析器的設定範例。
{
"name": "default-numeric-parser",
"messageClassName": "default-numeric-message-class",
"typeReference": {
"name": "default-numeric-type",
"version": 1
},
"disabled": false,
"script": "'{{scripts/parser-script.wstl}}'"
}
類型
本節將分享 MDE 類型的設定範例。
{
"archetype": "NUMERIC_DATA_SERIES",
"name": "default-numeric-type",
"disabled": false,
"versions": [
{
"version": 1,
"dataSchema": "",
"storageSpecs": [
{
"sink": "PUBSUB_PROTO",
"disabled": true,
"materializeCloudMetadata": false
},
{
"sink": "BIG_QUERY",
"disabled": false,
"materializeCloudMetadata": true
},
{
"sink": "GCS",
"disabled": false,
"materializeCloudMetadata": false
},
{
"sink": "PUBSUB_JSON",
"disabled": true,
"materializeCloudMetadata": false
},
{
"sink": "BIG_TABLE",
"disabled": false,
"materializeCloudMetadata": false
}
],
"metadataBuckets": [
{
"bucketName": "default-record-bucket",
"version": 1,
"required": false
},
{
"bucketName": "second-tag-bucket",
"version": 1,
"required": false
},
{
"bucketName": "default-tag-bucket",
"version": 1,
"required": false
}
],
"transformations": [
{
"window": {
"id": "10-minutes-window",
"durationMinutes": 10,
"valueExpression": "#message['data']['numeric'].toString()"
}
},
{
"eventChange": {
"keyExpression": "#message['tagName']",
"valueExpression": "#message['data']['numeric'].toString()"
}
}
]
}
]
}