0
我有一个消息数组;在每条消息内是另一个开始/停止值的数组。我可以很好地获取消息数组,但在Azure中执行流分析查询时,获取嵌套开始/停止值的下一级别返回0条记录。流分析 - 查询嵌套数组返回0结果
以下是Stream Analytics查询。
WITH
main AS
(
SELECT message.ArrayValue.header.messageId,
message.ArrayValue.startStopBlock as SSBlock
FROM IoTHub i
CROSS APPLY GetArrayElements(i.[STARTSTOPTIME:topic].message) AS
message
)
SELECT m.messageId,
SSEntry.ArrayValue.start,
SSEntry.ArrayValue.stop
FROM main m
CROSS APPLY GetArrayElements(m.SSBLOCK.ArrayValue.startStop) AS SSEntry
这里是JSON
{
\t "@xsi:schemaLocation" : "",
\t "nextBuffer" : {
\t \t "url" : "",
\t \t "moreData" : "false"
\t },
\t "message" : [{
\t \t \t "header" : {
\t \t \t \t "messageId" : "951262328",
\t \t \t },
\t \t \t "totalStartStops" : "2",
\t \t \t "startStopBlock" : {
\t \t \t \t "startStop" : [{
\t \t \t \t \t \t "start" : "2017-05-16 14:11:01",
\t \t \t \t \t \t "stop" : "2017-05-16 14:14:16",
\t \t \t \t \t \t "operatorId" : "0"
\t \t \t \t \t }, {
\t \t \t \t \t \t "start" : "2017-05-16 14:38:45",
\t \t \t \t \t \t "stop" : "2017-05-16 14:44:19",
\t \t \t \t \t \t "operatorId" : "0"
\t \t \t \t \t }
\t \t \t \t ]
\t \t \t }
\t \t }, {
\t \t \t "header" : {
\t \t \t \t "messageId" : "951266462",
\t \t \t },
\t \t \t "totalStartStops" : "2",
\t \t \t "startStopBlock" : {
\t \t \t \t "startStop" : [{
\t \t \t \t \t \t "start" : "2017-05-16 14:08:09",
\t \t \t \t \t \t "stop" : "2017-05-16 14:08:20",
\t \t \t \t \t \t "operatorId" : "-1"
\t \t \t \t \t }, {
\t \t \t \t \t \t "start" : "2017-05-16 14:54:38",
\t \t \t \t \t \t "stop" : "2017-05-16 15:01:17",
\t \t \t \t \t \t "operatorId" : "-1"
\t \t \t \t \t }
\t \t \t \t ]
\t \t \t }
\t \t }
\t ]
}
不错的工作,正是我需要的! –