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()"
          }
        }
      ]
    }
  ]
}