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.

相关推荐
Python_Study202515 分钟前
制造业数据采集系统选型指南:从技术挑战到架构实践
大数据·网络·数据结构·人工智能·架构
Cx330❀18 分钟前
Git 多人协作全攻略:从入门到高效协同
大数据·elasticsearch·搜索引擎·gitee·github·全文检索·gitcode
Tob管理笔记1 小时前
建筑业如何精准开拓优质客户?技术驱动下的方法论与实践
大数据·云计算·数据库开发
MM_MS1 小时前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
JZC_xiaozhong2 小时前
主数据同步失效引发的业务风险与集成架构治理
大数据·架构·数据一致性·mdm·主数据管理·数据孤岛解决方案·数据集成与应用集成
T06205142 小时前
【数据集】全国各地区教育139个相关指标数据集(2000-2024年)
大数据
故乡de云2 小时前
Vertex AI 企业账号体系,Google Cloud 才能完整支撑
大数据·人工智能
汽车仪器仪表相关领域3 小时前
AI赋能智能检测,引领灯光检测新高度——NHD-6109智能全自动远近光检测仪项目实战分享
大数据·人工智能·功能测试·机器学习·汽车·可用性测试·安全性测试
木头程序员3 小时前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
DX_水位流量监测3 小时前
无人机测流之雷达流速仪监测技术分析
大数据·网络·人工智能·数据分析·自动化·无人机