如何在流分析查询中连接查询的所有结果?
How to concat all the results of a query in Stream Analytics Query?
我有来自 IoT 中心的输入和来自 Blob 存储的参考输入。
我想合并 IoTHubInput.id 与 BlobStorageInput.id.
匹配时找到的所有结果
当前查询如下所示:
SELECT Blob
FROM iothub IoTHub
JOIN blob Blob
ON IoTHub.id = Blob.deviceId
此查询的结果如下所示:
[
{
"blob":
{
"deviceId": "test001",
"data": "Sample1"
}
},
{
"blob":
{
"deviceId": "test002",
"data": "Sample2"
}
},
{
"blob":
{
"deviceId": "test003",
"data": "Sample3"
}
},
]
它将 return 3 条消息发送到我的输出,但我不希望那样。
如果 id 匹配,我想要 blob 中的所有数据,但实际上我想要它们全部 CONCAT 并成为一个数组。例如:
[
{
"deviceId": "test001",
"data": "Sample1"
},
{
"deviceId": "test002",
"data": "Sample2"
},
{
"deviceId": "test003",
"data": "Sample3"
}
]
我在互联网上搜索并发现 GROUP CONCAT
但是流分析不支持。是否有任何其他替代解决方法可以实现同样的效果?
我重现你的测试数据:
据我所知,ASA 中没有 GROUP CONCAT
功能。其实ASA的输出是一个数组already.You可以在下载结果中验证:
我用 Blob 输出进行了测试,它显示为数组。如果您的输出产生 3 行,我建议您先使用 Azure Function Output 接受数组,然后再执行下一步传输步骤。
我有来自 IoT 中心的输入和来自 Blob 存储的参考输入。 我想合并 IoTHubInput.id 与 BlobStorageInput.id.
匹配时找到的所有结果当前查询如下所示:
SELECT Blob
FROM iothub IoTHub
JOIN blob Blob
ON IoTHub.id = Blob.deviceId
此查询的结果如下所示:
[
{
"blob":
{
"deviceId": "test001",
"data": "Sample1"
}
},
{
"blob":
{
"deviceId": "test002",
"data": "Sample2"
}
},
{
"blob":
{
"deviceId": "test003",
"data": "Sample3"
}
},
]
它将 return 3 条消息发送到我的输出,但我不希望那样。
如果 id 匹配,我想要 blob 中的所有数据,但实际上我想要它们全部 CONCAT 并成为一个数组。例如:
[
{
"deviceId": "test001",
"data": "Sample1"
},
{
"deviceId": "test002",
"data": "Sample2"
},
{
"deviceId": "test003",
"data": "Sample3"
}
]
我在互联网上搜索并发现 GROUP CONCAT
但是流分析不支持。是否有任何其他替代解决方法可以实现同样的效果?
我重现你的测试数据:
据我所知,ASA 中没有 GROUP CONCAT
功能。其实ASA的输出是一个数组already.You可以在下载结果中验证:
我用 Blob 输出进行了测试,它显示为数组。如果您的输出产生 3 行,我建议您先使用 Azure Function Output 接受数组,然后再执行下一步传输步骤。