Java 类名:com.alibaba.alink.operator.stream.sql.WindowGroupByStreamOp
Python 类名:WindowGroupByStreamOp
功能介绍
对流式数据按窗口做聚合计算。用户可指定窗口的类型、长度,然后通过sql聚合函数对窗口内的数据进行聚合运算,每个窗口输出一条计算结果。若有其它附加的key列,则在每个<窗口,key>内进行聚合运算,输出一条结果。
参数说明
| 名称 | 中文名称 | 描述 | 类型 | 是否必须? | 取值范围 | 默认值 | | —- | —- | —- | —- | —- | —- | —- |
| selectClause | select语句 | select语句 | String | ✓ | | |
| sessionGap | session间隔长度 | session间隔长度 | Integer | ✓ | | |
| slidingLength | 滑动窗口滑动长度 | 滑动窗口滑动长度 | Integer | ✓ | | |
| windowLength | 窗口长度 | 窗口长度 | Integer | ✓ | | |
| groupByClause | groupby语句 | groupby语句 | String | | | null |
| intervalUnit | 时间长度单位 | 时间长度单位 | String | | “SECOND”, “MINUTE”, “HOUR”, “DAY”, “MONTH” | “SECOND” |
| windowType | 窗口类型 | 窗口类型 | String | | “TUMBLE”, “HOP”, “SESSION” | “TUMBLE” |
聚合函数
| SQL语法 | 描述 | | —- | —- |
| COUNT(value [, value]* ) | 返回值不为null 的输入行数。 |
| COUNT(*) | 返回输入行数。 |
| AVG(value) | 返回所有输入值的数值的平均值(算术平均值)。 |
| SUM(value) | 返回所有输入值的数字总和。 |
| MAX(value) | 返回的最大值值在所有的输入值。 |
| MIN(value) | 返回的最小值的值在所有的输入值。 |
| STDDEV_POP(value) | 返回所有输入值的数字字段的总体标准偏差。 |
| STDDEV_SAMP(value) | 返回所有输入值的数字字段的样本标准偏差。 |
| VAR_POP(value) | 返回所有输入值中数字字段的总体方差(总体标准差的平方)。 |
| VAR_SAMP(value) | 返回所有输入值的数值字段的样本方差(样本标准差的平方)。 |
| CONCAT_AGG(value, sep) | sep是分隔符,用指定的spearator做分隔符,连接value中的值。 |
注意
不支持 count distinct
三种window的区别
参考:https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/operators/windows.html