Azure 流分析) (开窗函数

在处理实时事件的应用程序中,通常对某个时间段内事件的子集执行一些基于集的计算 (聚合) 或其他操作。 由于时间概念是复杂的事件处理系统的基本必需项,因此必须找到一种简单方法来使用系统中的查询逻辑的时间组件。 在 Azure 流分析中,这些事件子集通过窗口来定义以表示按时间分组。 本文介绍窗口及其定义方式,标识受支持的窗口类型,并说明如何将窗口与各种运算符配合使用。

了解窗口

窗口包含沿时间线分布的事件数据,可让你针对该窗口中的事件执行各种操作。 例如,你可能想要对给定窗口中的负载字段的值求和,如下面的插图中所示。

流分析查询语言翻转窗口

每个窗口操作都输出窗口末尾的事件。 Azure 流分析的窗口在窗口开始时间打开,在窗口结束时间关闭。 例如,如果有一个 5 分钟的时段,时间从上午 12:00 到凌晨 12:05,时间戳大于上午 12:00 且时间戳最长为 12:05(包括上午 12:05)。 此窗口的输出将为单个事件,该事件基于与等于窗口结束时间的时间戳一起使用的聚合函数。 窗口的输出事件的时间戳可以使用别名的 System.Timestamp () 属性在 SELECT 语句中投影。 每个窗口均自动根据第零个小时来调整自身。 例如,5 分钟的翻转窗口将自身与 (12:00-12:05] 、 (12:05-12:10]、...等对齐。

执行窗口操作后,事件的时间戳将与原始事件时间属性不同, (到达时间 或与 TIMESTAMP BY) 一起使用的列。 始终可以使用 system.timestamp () 访问事件的当前更新时间戳。

注意

应在 GROUP BY 子句中使用所有窗口。

有五种类型的窗口:

  1. 滚动窗口(Azure 流分析)

  2. 跳跃窗口(Azure 流分析)

  3. 滑动窗口(Azure 流分析)

  4. Azure 流分析) (会话窗口

  5. Azure 流分析) (快照窗口

在所有情况下,窗口的最大大小为 7 天。

可以使用 Windows (Azure 流分析) 函数在同一 GROUP BY 语句中跨多个时间窗口聚合。

另请参阅

内置函数(Azure 流分析)
聚合函数(Azure 流分析)
分析函数(Azure 流分析)
流分析) (数组函数
转换函数(Azure 流分析)
日期和时间函数(Azure 流分析)
记录 Functions (Azure 流分析)