Azure StreamAnalytics获得上一小时的平均值

问题描述 投票:0回答:1

我有一个Azure流分析作业,该作业通过Azure IOT集线器获取温度传感器的值,并将这些值保存在Azure存储帐户中。我想用时间戳和最近一小时的平均温度保存温度。我的查询如下:

WITH average AS
    (
        SELECT 
            Avg(data.temp) AS AverageTemp,
            count(*) AS Batchsize
        FROM 
            IOTHubEingabe
        GROUP BY 
            SlidingWindow(minute, 60)
    )
SELECT IOTHubEingabe.data.time,
        IOTHubEingabe.data.temp,
        average.AverageTemp,
        average.Batchsize
INTO
[tempOutput]
FROM
    IOTHubEingabe
     INNER JOIN average
        ON datediff(minute, IOTHubEingabe, average) BETWEEN 0 AND 60

此查询的问题是,我总是在一小时内得到相同的平均值,但是我希望每个值都为最后一小时的平均值。例如:

2019-11-21 12:00; 20 degrees; avarageTemp 11:00-12:00
2019-11-21 12:01; 21 degrees; averageTemp 11:01-12:01
2019-11-21 12:02; 21 degrees; averageTemp 11:02-12:02
azure azure-storage-blobs azure-iot-hub azure-stream-analytics
1个回答
0
投票

我怀疑您需要使用Tumbling Window,这样窗口就不会重叠,这似乎使您感到困惑。如果您使用滑动窗口,那么大多数值将是相同的,这是合乎逻辑的,因为采样差异仅为1分钟,因此所有其他59分钟都相同。

ps。值甚至在您提供的样本中也不相同

© www.soinside.com 2019 - 2024. All rights reserved.