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 ]
}
不錯的工作,正是我需要的! –