Flink SQL 窗口表值函数 Window TVF 实战

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink SQL 窗口表值函数 Window TVF 实战相关的知识,希望对你有一定的参考价值。

传送门:Flink 系统性学习笔记


Flink 1.13.5

窗口 TVF 是 Flink 定义的多态表函数(缩写 PTF)。PTF 是 SQL 2016 标准的一部分,是一个特殊的表函数,可以将表作为参数。因为 PTF 在语义上像表一样使用,所以它们的调用发生在 SELECT 语句的 FROM 子句中。窗口 TVF 是传统 Grouped Window 函数的替代品。窗口 TVF 更符合 SQL 标准,也更强大,可以支持复杂的基于窗口的计算,例如 Window TopN, Window Join。但是,Grouped Window 函数只能支持窗口聚合。

1. 窗口函数

Apache Flink 提供了 3 个内置窗口 TVF:TUMBLE、HOP 和 CUMULATE。

1.1 TUMBLE TVF

TUMBLE 函数将每个元素分配给指定窗口大小的滚动窗口。滚动窗口有固定的大小,不重叠。例如假设你指定一个大小为 5 分钟的滚动窗口,Flink 会每五分钟启动一个新窗口,如下图所示:

以上是关于Flink SQL 窗口表值函数 Window TVF 实战的主要内容,如果未能解决你的问题,请参考以下文章

Flink实战系列Flink SQL 之 Session Window 的用法

Flink SQL Window源码全解析

用T-SQL语句自定义一表值函数

T-SQL编程 —— 用户自定义函数(内嵌表值函数)

T-SQL 多语句表值函数

等效于 Amazon Redshift 中的 T-SQL 表值构造函数?