文件内容
本页介绍了制造数据引擎 (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 内容嵌入为字符串。例如,存储桶对象中的 schema 字段需要将存储桶架构嵌入为字符串,在这种情况下,引用指令应以单引号 ' 括起来,这会告知 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()"
}
}
]
}
]
}