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 流分析:从滑动窗口计算斜率的主要内容,如果未能解决你的问题,请参考以下文章