如何在 Azure 流分析中创建延迟滑动窗口
Posted
技术标签:
【中文标题】如何在 Azure 流分析中创建延迟滑动窗口【英文标题】:How to create a delayed sliding window in Azure Stream Analytics 【发布时间】:2018-04-27 20:53:22 【问题描述】:我想计算我的流中以下两个值之间的变化率:
1mn 的 SlidingWindow 中的 AVG(value) 上一分钟 SlidingWindow 中的 AVG(value) 为 1mn我在文档中唯一找不到的是如何创建一个“延迟”滑动窗口,这意味着它在实际时间之前 2 百万开始并在实际时间之前 1 百万结束,所以我可以进行一些计算,例如变化率.
【问题讨论】:
【参考方案1】:你可以做两步。
-
计算一分钟的 AVG 聚合。
在上一个流的 AVG 上使用 LAG
如下所示
WITH OneMinuteWindows AS
(
SELECT
Avg(Column1) AvgValue
FROM
InputEventHub
GROUP BY
TumblingWindow(mi, 1)
)
SELECT
System.TimeStamp [TimeStamp],
AvgValue [CurrentValue],
LAG(AvgValue) OVER (LIMIT DURATION(mi, 2)) [PreviousValue]
FROM
OneMinuteWindows
【讨论】:
谢谢,这也是我刚刚发现的!您知道如何使用 LAG 按时间而不是最后一个事件来获取先前的值吗?例如,当使用滑动窗口而不是翻滚窗口时,如果我使用 LAG,它会得到之前的值,它可能是 1 秒之前。我知道我可以只创建 2 个计算,一个带有翻滚,一个带有滑动窗口,但是如果我们可以按时间单位而不是事件单位查找过去,仍然会很棒。以上是关于如何在 Azure 流分析中创建延迟滑动窗口的主要内容,如果未能解决你的问题,请参考以下文章