Flink之窗口指派API模板

flink中窗口指派主要分为两类NoKeyed WindowsKeyed Windows,这里就结合这两类阐述窗口指派API

  • NoKeyed Windows
    NoKeyed Windows同时又分为两类Porcessing TimeEvent Time,即处理时间语义和事件时间语义.

    1. 事件时间语义

      java 复制代码
      // 事件时间语义-滚动窗口
      source.windowAll(TumblingEventTimeWindows.of(Time.seconds(1)));
      // 事件时间语义-滑动窗口(参数1:窗口长度 参数2:滑动步长,计算频率)
      source.windowAll(SlidingEventTimeWindows.of(Time.seconds(5), Time.seconds(1)));
      // 事件时间语义-会话窗口-静态gap
      source.windowAll(EventTimeSessionWindows.withGap(Time.seconds(1)));
      // 事件时间语义-会话窗口-动态获取gap
      source.windowAll(EventTimeSessionWindows.withDynamicGap(element -> {...}));
    2. 处理时间语义

      java 复制代码
      // 处理时间语义-滚动窗口
      source.windowAll(TumblingProcessingTimeWindows.of(Time.seconds(1)));
      // 处理时间语义-滑动窗口(参数1:窗口长度 参数2:滑动步长,计算频率)
      source.windowAll(SlidingProcessingTimeWindows.of(Time.seconds(5), Time.seconds(1)));
      // 处理时间语义-会话窗口-静态gap
      source.windowAll(ProcessingTimeSessionWindows.withGap(Time.seconds(1)));
      // 处理时间语义-会话窗口-动态获取gap
      source.windowAll(ProcessingTimeSessionWindows.withDynamicGap(element -> {...}));
  • Keyed Windows
    同样Keyed Windows也分为Porcessing TimeEvent Time.

    1. 事件时间语义

      java 复制代码
      // 事件时间语义-滚动窗口
      keyedStream.window(TumblingEventTimeWindows.of(Time.seconds(1)));
      // 事件时间语义-滑动窗口(参数1:窗口长度 参数2:滑动步长,计算频率)
      keyedStream.window(SlidingEventTimeWindows.of(Time.seconds(5), Time.seconds(1)));
      // 事件时间语义-会话窗口-静态gap
      keyedStream.window(EventTimeSessionWindows.withGap(Time.seconds(1)));
      // 事件时间语义-会话窗口-动态获取gap
      keyedStream.window(EventTimeSessionWindows.withDynamicGap(element -> {...}));
    2. 处理时间语义

      java 复制代码
      // 处理时间语义-滚动窗口
      keyedStream.window(TumblingProcessingTimeWindows.of(Time.seconds(1)));
      // 处理时间语义-滑动窗口(参数1:窗口长度 参数2:滑动步长,计算频率)
      keyedStream.window(SlidingProcessingTimeWindows.of(Time.seconds(5), Time.seconds(1)));
      // 处理时间语义-会话窗口-静态gap5
      keyedStream.window(ProcessingTimeSessionWindows.withGap(Time.seconds(1)));
      // 处理时间语义-会话窗口-动态获取gap
      keyedStream.window(ProcessingTimeSessionWindows.withDynamicGap(element -> {...}));

窗口指派的API模板基本就这些内容,这里都是以时间窗口作为示例的,还有根据数据条数窗口的指派,窗口指派和时间窗口是一样的,只不过将keyedStream.window更换成countWindow.

相关推荐
Data-Miner10 分钟前
196页满分PPT | 集团流程优化及IT规划项目案例
大数据·数据分析
徐*红13 分钟前
Elasticsearch 8.+ 版本查询方式
大数据·elasticsearch
DolphinScheduler社区26 分钟前
怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
大数据
goTsHgo28 分钟前
Hive自定义函数——简单使用
大数据·hive·hadoop
码爸30 分钟前
flink 例子(scala)
大数据·elasticsearch·flink·scala
FLGB31 分钟前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
码爸32 分钟前
flink 批量压缩redis集群 sink
大数据·redis·flink
core51233 分钟前
Flink官方文档
大数据·flink·文档·官方
周全全36 分钟前
Flink1.18.1 Standalone模式集群搭建
大数据·flink·集群·主从·standalone
Hello.Reader39 分钟前
StarRocks实时分析数据库的基础与应用
大数据·数据库