流分析查询工作但没有输出到表

时间:2016-10-14 06:40:10

标签: azure azure-stream-analytics

我的Stream Analytics工作遇到了问题。我从IoT Hub中提取事件,并根据自定义时间戳将它们分组到时间窗口;我已经编写了一个正确执行此操作的查询。但问题是它只是没有在我的输出表中写入任何内容(作为我的存储帐户上的NoSQL表)。

查询在查询编辑器中运行时没有问题(使用示例输入文件进行测试时)并生成正确的输出,但在运行'for real'时,它不输出任何内容(输出表保持为空)。我甚至尝试重命名表并输出到blob存储,但没有骰子。这是查询:

SELECT
    'general' AS partitionKey, 
    MIN(ID_frame) AS rowKey, 
    DATEADD(second, 1, DATEADD(hour, -3, System.TimeStamp)) AS window_start, 
    System.TimeStamp AS window_end, 
    COUNT(ID_frame) AS device_count
INTO
    [IoT-Hub-output-table]
FROM
    [IoT-Hub-input] TIMESTAMP BY custom_timestamp
GROUP BY TumblingWindow(Duration(hour, 3), Offset(second, -1))

有趣的是,如果我在查询中省略任何窗口,那么表输出就可以了。 几天以来,我一直在争论这个问题,所以我想我已经尝试了大部分显而易见的事情。

2 个答案:

答案 0 :(得分:1)

当您使用3小时的TumblingWindow时,这意味着您将每3小时获得一次输出,其中包含该时段内所有事件的总和。

您是否已经等待了3个小时才能生成第一个输出?

我会尝试将窗口设置得更小,然后再次尝试查看输出是否正常工作。

答案 1 :(得分:1)

将查询执行输出到我的表中,但是我没有预料到会有多少延迟;我最多等待20-30分钟。而第一次插入将在半小时后开始。因此,我在生成任何输出之前取消了Analytics工作,并错误地假设它不会输出任何内容。

我发现这是我注意到的情况,有时候' (当工作运行的时间足够长时)似乎有一些输出。在那些输出记录中,我注意到我的自定义时间戳字段和一般时间戳字段之间的大延迟(引擎用来记住最后一次更新实体的时间)