Java教程

flink--Window TVF【窗口化表值函数】讲解及源码示例

本文主要是介绍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的返回值是一个新的关系,它

这篇关于flink--Window TVF【窗口化表值函数】讲解及源码示例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!