파일 콘텐츠
이 페이지에서는 제조 데이터 엔진 (MDE) 패키지의 각 구성 패키지 폴더의 콘텐츠를 설명합니다.
각 구성 패키지 폴더에서 MDE는 구성 객체당 하나의 JSON 파일을 찾을 것으로 예상합니다. 버킷을 두 개 만들려면 파일이 두 개 있어야 합니다. 파일 이름은 무시됩니다. 하지만 만들려는 구성 객체 이름으로 파일 이름을 지정하는 것이 좋습니다. 각 객체의 실제 JSON 스키마는 만들려는 구성 엔티티의 유형에 따라 다르지만 해당 API 응답의 JSON 스키마와 일치합니다.
구성 패키지를 추가로 정리하려면 특정 필드 아래 파일에 삽입할 다른 JSON 파일을 참조하면 됩니다. 예를 들어 다음 JSON은 스키마가 다른 JSON 파일에 정의된 스키마가 있는 MDE 버킷을 지정합니다. 이렇게 하면 구성 패키지의 전반적인 가독성과 유지관리성이 향상됩니다.
{
"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 콘텐츠를 문자열로 삽입해야 합니다. 예를 들어 버킷 객체의 schema 필드에는 버킷 스키마가 문자열로 삽입되어야 합니다. 이 경우 참조 지시문은 MDE가 콘텐츠를 처리되지 않은 문자열로 삽입하도록 지시하는 작은따옴표 '로 묶여야 합니다. 참조 지시문은 '{{relative-path/file.json}}'가 됩니다.
참조된 파일은 모든 디렉터리에 있을 수 있으며, 조직 목적으로 여러 디렉터리를 만들 수 있습니다. 예를 들어 이전 예의 schemas라는 디렉터리는 공통 파일을 함께 그룹화하기 위한 임의의 폴더 구조입니다. 삽입할 수 있는 파일 유형은 휘슬 스크립트의 경우 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()"
}
}
]
}
]
}