Структура данных:{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)
Я хотел бы рассчитать в реальном времени крутизну между фактическим средним значением температуры и средним температурой 30 секунд ранее.
Использование tumbling window будет работать с использованием LAG(avgTemp, 1), но это будет выводиться только каждые 30 секунд.
TL; DR: Я хотел бы вычислять наклон в реальном времени каждый раз, когда новое среднее значение вычисляется скользящим окном.


Возможный дубликат Как создать скользящее окно с задержкой в Azure Stream Analytics
Вы можете сделать это в два этапа. Шаг 1 вычисляет скользящее окно, Шаг 2 вычисляет наклон с использованием LAG.
Итак, есть ли скорость, с которой производятся события? что, если нет данных в t-30s, но есть один в t-29, а другой в t-31, которые вы хотите использовать? вы можете использовать join вместо LAG и указать wiggle> 30 с, но вы также должны указать верхнюю границу, то есть «и <2 мин».
В этом и заключается проблема: использование LAG в SlidingWindow даст предыдущее выданное значение, которое может быть меньше 1 секунды и не является предсказуемым, потому что события могут появиться в любом случае. Я не пытаюсь вычислить наклон между t и t-1. Я пытаюсь вычислить между t и t-30