flink--Window TVF【窗口化表值函数】讲解及源码示例
作者:互联网
1. 什么是Window TVF
-
Windowing TVFs: Flink定义的多态表函数(简称PTF),用于将表中的元素划分到定义的窗口中
- 窗口化TVFs替代了 legacy Grouped Window Functions。
- windows TVFs更符合SQL标准,更强大的支持复杂的窗口计算,例如Window TopN, Window Join【在1.13.x中还不支持】。
- Grouped Window Functions【分组窗口函数】只能支持窗口聚合。
-
PTF 【Polymorphic Table Functions】:
- SQL 2016标准的一部分,是一种特殊的表函数,但是可以使用表作为参数。PTF是一个强大的特性,它可以改变表形状。因为PTF在语义上与表类似,所以它们的调用发生在SELECT语句的FROM子句中
- PTF 可以处理在定义时没有声明行的类型的表,也可以生成一个在定义时声明了或者没有声明行的类型的结果表。多态表函数允许开发人员利用动态SQL创建强大而复杂的自定义函数。
注意:每个元素逻辑上可以属于多个窗口,这取决于使用的TVF。
例如HOP窗口创建重叠窗口,其中单个元素可以分配给多个窗口。
2. 内置的Window TVF
Flink提供了3个内置的窗口TVF: TUMBLE、HOP、CUMULATE
窗口TVF的返回值是一个新的关系,它
标签:窗口,函数,表值,示例,PTF,Window,源码,SQL,TVF 来源: https://blog.csdn.net/penriver/article/details/121518139