Konten file
Halaman ini menjelaskan konten setiap folder paket konfigurasi di paket Manufacturing Data Engine (MDE).
Di setiap folder paket konfigurasi, MDE diharapkan menemukan satu file JSON per objek konfigurasi. Jika Anda ingin membuat dua bucket, maka harus ada dua file terpisah. Nama file diabaikan. Namun, sebaiknya beri nama file sesuai dengan nama objek konfigurasi yang ingin Anda buat. Skema JSON sebenarnya untuk setiap objek bergantung pada jenis entity konfigurasi yang ingin Anda buat, tetapi cocok dengan skema JSON dari respons API yang sesuai.
Untuk mengatur paket konfigurasi lebih lanjut, Anda dapat merujuk ke file JSON lain yang akan disematkan dalam file di kolom tertentu. Misalnya, JSON berikut menentukan bucket MDE dengan skema yang ditentukan dalam file JSON lain. Hal ini meningkatkan keterbacaan dan kemudahan pemeliharaan paket konfigurasi secara keseluruhan.
{
"type": "TAG",
"name": "second-tag-bucket",
"attributes": {
"instanceOverwriteMode": "true"
},
"versions": [
{
"version": 1,
"schema": "'{{schemas/generic-schema.json}}'",
"provider": "local",
}
]
}
Untuk mereferensikan file lain, Anda dapat menggunakan
direktif {{relative-path/file.json}}
yang berisi jalur relatif file yang perlu
disertakan dalam file yang ada. MDE akan menyelesaikan file dan menyertakan konten JSON sebagai nilai kolom yang memiliki direktif referensi. Nilai kolom schema dalam contoh sebelumnya akan
berisi sub-objek JSON tersemat yang cocok dengan isi file.
Untuk objek tertentu, Anda perlu menyematkan konten JSON sebagai string. Sebagai
contoh, kolom schema dalam objek bucket memerlukan skema bucket
untuk disematkan sebagai string, dan dalam hal ini, direktif referensi harus
diapit oleh tanda petik tunggal ' yang memberi tahu MDE untuk menyematkan
konten yang tidak diproses sebagai string; direktif referensinya adalah:
'{{relative-path/file.json}}'.
File yang dirujuk dapat berada di direktori mana pun, dan Anda dapat membuat direktori yang berbeda untuk tujuan pengorganisasian. Misalnya, direktori yang disebut
schemas dalam contoh sebelumnya adalah struktur folder arbitrer untuk mengelompokkan
file umum bersama-sama. Jenis file yang dapat disematkan adalah
JSON atau WSTL untuk skrip Whistle.
Berikut adalah contoh konfigurasi untuk setiap entitas MDE.
Bucket
Bagian ini membagikan contoh konfigurasi untuk bucket MDE.
{
"type": "TAG",
"name": "second-tag-bucket",
"attributes": {
"instanceOverwriteMode": "true"
},
"versions": [
{
"version": 1,
"schema": "'{{schemas/generic-schema.json}}'",
"provider": "local"
}
]
}
Spesifikasi penyerapan
Bagian ini membagikan contoh konfigurasi untuk spesifikasi penyerapan 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
}
Class pesan
Bagian ini membagikan contoh konfigurasi untuk class pesan 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"
}
Instance metadata
Bagian ini membagikan contoh konfigurasi untuk instance metadata MDE.
{
"bucketReference": {
"bucketName": "default-tag-bucket",
"bucketType": "TAG",
"version": 1
},
"naturalKey": "cloud-natural-key",
"instance": {
"site": "simulated-site",
"factory": "test-factory"
}
}
Parser
Bagian ini membagikan contoh konfigurasi untuk parser MDE.
{
"name": "default-numeric-parser",
"messageClassName": "default-numeric-message-class",
"typeReference": {
"name": "default-numeric-type",
"version": 1
},
"disabled": false,
"script": "'{{scripts/parser-script.wstl}}'"
}
Jenis
Bagian ini membagikan contoh konfigurasi untuk jenis 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()"
}
}
]
}
]
}