✅ Azure 流分析 ✅ 构造事件流
使用滑动窗口时,系统会要求以逻辑方式考虑给定长度的所有可能窗口。 由于此类窗口的数量是无限的,因此,Azure 流分析仅输出窗口内容实际更改的时间点的事件,换句话说,当事件进入或退出窗口时。
下图演示了一个包含一系列事件的流,以及如何将其映射到 10 秒的滑动窗口。
语法
{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )
注释
可通过上述两种方式使用滑动窗口。 若要允许与跳跃窗口保持一致性,持续时间函数还可用于所有类型的窗口以指定窗口大小。
论据
timeunit
窗口化的时间单位。 下表列出了所有有效的 timeunit 参数。
Timeunit | 缩写形式 |
---|---|
日 | dd、d |
小时 | hh |
分钟 | mi、 n |
秒 | ss、s |
毫秒 | 女士 |
微秒 | mcs |
windowsize
描述窗口大小的大整数。 窗口化是静态的,在运行时无法动态更改。
所有情况下窗口的最大大小为 7 天。
例子
本示例查找在过去 5 分钟内为 3 辆以上车辆提供服务的所有收费站:
SELECT DateAdd(minute,-5,System.Timestamp()) AS WinStartTime, System.Timestamp() AS WinEndTime, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, SlidingWindow(minute, 5)
HAVING COUNT(*) > 3