FlinkSQL之Windowing TVF

Windowing TVF

在Flink1.13版本之后出现的替代之前的Group window的产物,官网描述其 is more powerful and effective

sql实现TVF的tumble窗口实现

package net.cyan.FlinkSql.TVF; ​ import net.cyan.POJO.WaterSensor; import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; ​ import java.time.Duration; ​ import static org.apache.flink.table.api.Expressions.$; ​ public class Demo1_Window_TableAPI_Tumble {     public static void main(String[] args) {

sql实现TVF的滑动窗口

package net.cyan.FlinkSql.TVF; ​ import net.cyan.POJO.WaterSensor; import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; ​ import java.time.Duration; ​ import static org.apache.flink.table.api.Expressions.$; ​ public class Demo2_Window_TVF_Hop {     public static void main(String[] args) {

sql实现TVF的累计窗口

累计窗口的应用:

需求:每天每隔一个小时统计一次当天的pv(浏览量)

流的方式如何解决:

1、用滚动窗口, 窗口长度设为1h

2、每天的第一个窗口清除状态,后面的不清,进行状态的累加

用滚动窗口,长度设置为2day

自定义触发器,每隔1小时对窗内的元素计算一次,不关闭窗口

sql的方式如何解决?

直接使用累计窗口cumulate

package net.cyan.FlinkSql.TVF; ​ import net.cyan.POJO.WaterSensor; import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.Table; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; ​ import java.time.Duration; ​ import static org.apache.flink.table.api.Expressions.$; ​ public class Demo3_Window_TVF_cumulate {     public static void main(String[] args) {

Original: https://www.cnblogs.com/CYan521/p/16848901.html
Author: 再美不及姑娘你
Title: FlinkSQL之Windowing TVF

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713566/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球