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跳动4 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1115 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq6 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq6 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈6 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
小白学大数据7 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥7 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
节点。csn8 小时前
Hadoop yarn安装
大数据·hadoop·分布式
arnold668 小时前
探索 ElasticSearch:性能优化之道
大数据·elasticsearch·性能优化
NiNg_1_2349 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式