Lookup Mapping¶
Lookup Mapping 节点将输入 msg 中的 key 与映射文件中的 key 建立映射关系,并将指定的数据输出到输出 msg。
如需聚合输出多个映射结果,CSV 文件中必须添加 dataType
列,且指定一个输入 msg 中需要聚合的 key。映射成功后,该 key 对应的 dataType
若为 array
且泛型相同,则其 value 将聚合为数组,并输出到输出 msg。此时其他未指定的值将不输出。
备注
该节点只建立映射关系,后续的标准设备测点的结构,需要用其他节点来封装,如 Template 节点。
节点类型¶
EnOS。
输入和输出能力¶
该节点具有 1 个入口点和 1 个出口点。输入和输出都是 JSON 格式。
节点属性¶
名称
该节点的名称。
映射文件
上传 CSV 映射文件,文件中包含输入 msg 中的待映射 key,以及其他需要输出的 Key。你可以选择 下载模板 下载模板使用。填写文件后,选择 上传 上传文件,或者选择 下载 下载已上传的文件。
映射结果
基于映射文件,下拉选择 CSV 文件中的 Key 作为输出的映射结果,可以多选。
若需聚合多个映射结果,CSV 文件里必须添加 dataType
列。支持的 dataType
值如下。
number
:数字类型string
:文本类型array<number>
:数字组成的数组类型array<string>
:文本字符串组成的数组类型boolean
:布尔类型
映射成功后,映射 Value 中的值若符合以下条件,将聚合为一个数组输出:
映射关系相同。
指定的
dataType
为array
类型,且泛型相同。
更多信息,参见 示例 3。
映射 Key
基于映射文件,下拉选择 CSV 文件中的 Key 作为映射 Key,可以多选。
映射 Value
使用表达式指定一个输入 msg 中的 key,例如 ${msg.key}。
映射成功后,如果映射关系相同且指定的 dataType
为 array
且泛型相同,该 key 对应的值将聚合为一个数组,展示在输出 msg 中。此时未指定的数据将不会出现在输出 msg 中,参见 示例 5。
如不填,输入 msg 中的数据将全部输出到输出 msg,参见 示例 1。
描述
该节点的描述。
使用限制¶
映射文件最大支持 15 万条数据。
最大映射文件大小:16M
仅支持 CSV 文件。
映射 Value 只能指定一个 key。
一个集成流中不能部署超过 5 个该节点。
示例¶
下面的示例基于具有以下数据的 CSV 文件。
Key1 |
Key2 |
Key3 |
dataType |
---|---|---|---|
AI000001 |
1KaobBq4I |
AO-BOOL-ARRAY |
array<string> |
AI000001 |
2KaobBq4I |
AO-BOOL-STRING |
string |
AI000001 |
3KaobBq4I |
AO-BOOL-STRING2 |
string |
AI000001 |
4KaobBq4I |
AO-BOOL-ARRAY |
array<string> |
AI000002 |
1KaobBq4I |
AO-BOOL-ARRAY |
array<string> |
AI000002 |
6KaobBq4I |
AO-BOOL-STRING |
string |
AI000003 |
7KaobBq4I |
AO-BOOL-ARRAY |
array<string> |
AI000004 |
8KaobBq4I |
AO-BOOL-FLOAT |
number |
输入与输出示例¶
示例 1¶
映射结果: Key2, Key3
映射 Key: Key1
输入¶
[
{
"Key1": "AI000003", //Key1 是作为映射的 Key
"value": "88",
"color": "blue",
"type": "circle",
}
]
输出¶
[
{
"Key1": "AI000003",
"value": "88",
"color": "blue",
"type": "circle",
"Key2": "7KaobBq4I",
"Key3": "AO-BOOL-ARRAY"
}
]
示例 2¶
映射结果: Key3
映射 Key: Key1, Key2
输入¶
[
{
"Key1": "AI000004", //Key1 和 Key2 是作为映射的 Key
"Key2": "8KaobBq4I",
"value": "77"
}
]
输出¶
[
{
"Key1": "AI000004",
"Key2": "8KaobBq4I",
"value": "77",
"Key3": "AO-BOOL-FLOAT"
}
]
示例 3¶
映射结果: Key2, Key3
映射 Key: Key1
映射 Value: ${msg.value}
输入¶
[
{
"Key1": "AI000001",
"value": "5"
},
{
"Key1": "AI000002",
"value": "6"
}
]
输出¶
[
{
"Key2": "6KaobBq4I",
"Key1": "AI000002",
"value": "6",
"Key3": "AO-BOOL-STRING"
},
{
"Key2": "2KaobBq4I",
"Key1": "AI000001",
"value": "5",
"Key3": "AO-BOOL-STRING"
},
{
"Key2": "3KaobBq4I",
"Key1": "AI000001",
"value": "5",
"Key3": "AO-BOOL-STRING2"
},
{
"Key2": "4KaobBq4I",
"value": [
"5"
],
"Key3": "AO-BOOL-FLOAT"
},
{
"Key2": "1KaobBq4I",
"value": [
"6",
"5"
],
"Key3": "AO-BOOL-ARRAY"
}
]
示例 4¶
映射结果: Key2,Key3
映射 Key: Key1
输入¶
[
{
"Key1": "AI000001",
"value": "18"
}
]
输出¶
[
{
"Key2": "1KaobBq4I",
"Key1": "AI000001",
"value": "18",
"Key3": "AO-BOOL-ARRAY"
},
{
"Key2": "2KaobBq4I",
"Key1": "AI000001",
"value": "18",
"Key3": "AO-BOOL-STRING"
},
{
"Key2": "3KaobBq4I",
"Key1": "AI000001",
"value": "18",
"Key3": "AO-BOOL-STRING2"
},
{
"Key2": "4KaobBq4I",
"Key1": "AI000001",
"value": "18",
"Key3": "AO-BOOL-ARRAY"
}
]
示例 5¶
映射结果: Key2,Key3
映射 Key: Key1
映射 Value: ${msg.color}
输入¶
[
{
"Key1": "AI000003",
"value": "7",
"color": "blue",
"type": "circle"
}
]
输出¶
[
{
"Key2": "7KaobBq4I",
"color": [
"blue"
],
"Key3": "AO-BOOL-ARRAY"
}
]