如何在 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 流分析中创建延迟滑动窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框中创建滑动窗口并应用函数

Sentinel滑动时间窗限流算法原理及源码解析(下)

无法确定在 Azure 流分析中使用哪个窗口

2020-10-31-Flink-7(流处理基础)

如何在 Microsoft Azure IoT 中创建自定义的流数据仪表板?

如何在 Swift 中创建像指南针一样的“滑动视图”?