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.

相关推荐
未来之窗软件服务2 小时前
一体化系统(九)智慧社区综合报表——东方仙盟练气期
大数据·前端·仙盟创梦ide·东方仙盟·东方仙盟一体化
火星资讯6 小时前
Zenlayer AI Gateway 登陆 Dify 市场,轻装上阵搭建 AI Agent
大数据·人工智能
星海拾遗6 小时前
git rebase记录
大数据·git·elasticsearch
Elastic 中国社区官方博客6 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
香精煎鱼香翅捞饭8 小时前
记一次多线程调用TDEngine restful获取数据的时间异常
大数据·时序数据库·tdengine
AI_56789 小时前
Webpack5优化的“双引擎”
大数据·人工智能·性能优化
慎独4139 小时前
家家有平台:Web3.0绿色积分引领消费新纪元
大数据·人工智能·物联网
百***243710 小时前
GPT-5.2 技术升级与极速接入指南:从版本迭代到落地实践
大数据·人工智能·gpt
专业开发者11 小时前
奇迹由此而生:回望 Wi-Fi® 带来的诸多意外影响
大数据
尔嵘11 小时前
git操作
大数据·git·elasticsearch