Azure 流分析:从滑动窗口计算斜率

Posted

技术标签:

【中文标题】Azure 流分析:从滑动窗口计算斜率【英文标题】:Azure Stream Analytics: Calculate Slope from a Sliding Window 【发布时间】:2018-04-30 20:25:48 【问题描述】:

数据结构: sensorId: 1, temp: 20, timestamp: 1525119377241

窗口查询

SELECT
    System.Timestamp as WindowEnd,
    sensorId,
    AVG(temp) AS avgTemp,
FROM
    SensorStream TIMESTAMP BY timestamp
GROUP BY
    sensorId,
    SlidingWindow(second, 30)

我想实时计算实际 avgTemp 和 avgTemp 30s 之前的斜率。

使用tumbling window 可以使用LAG(avgTemp, 1),但这只会每30 秒输出一次。

TL;DR:我想在每次滑动窗口计算新的 avgTemp 时实时计算斜率。

【问题讨论】:

【参考方案1】:

How to create a delayed sliding window in Azure Stream Analytics 可能重复

您可以分两步完成。 Step 1 计算滑动窗口,Step 2 使用 LAG 计算斜率。

【讨论】:

这正是问题所在:在 SlidingWindow 上使用 LAG 将给出先前的 emmited 值,该值可能小于 1 秒,并且无法预测,因为事件可能以任何速率发生。计算 t 和 t-1s 之间的斜率不是我想要做的。我正在尝试计算 t 和 t-30s 那么,是否有产生事件的速率?如果在 t -30s 没有数据,但在 t-29 有一个数据,在 t-31 有另一个数据,你想使用哪个?您可以使用 join 代替 LAG 并将 wiggle 指定为 > 30s,但您还必须提供上限,即“and

以上是关于Azure 流分析:从滑动窗口计算斜率的主要内容,如果未能解决你的问题,请参考以下文章

算法总结之滑动窗口

Spark SQL 滑动窗口差分计算

限流降级方案

计算机网络:可靠传输的实现 (tcp窗口滑动以及拥塞控制)

堆的相关题目—滑动窗口

1030 完美数列 (25 分)(滑动窗口)