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