You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Flink是否支持基于计数的窗口?文档未找到相关内容求助

Flink支持基于计数的窗口,这类窗口属于**全局窗口(Global Windows)**的典型用法,只是你查阅的窗口概览文档未单独展开说明,核心需要通过自定义触发器来触发窗口计算。

核心实现步骤

  • 调用window(GlobalWindows.create())指定全局窗口类型
  • 搭配CountTrigger定义窗口触发的元素数量阈值
  • 可选使用Evictor控制窗口内保留的元素数量,避免内存占用过高

代码示例

滚动计数窗口(每N条数据触发一次计算)

DataStream<Tuple2<String, Integer>> inputStream = ...;

inputStream
    .keyBy(tuple -> tuple.f0)
    .window(GlobalWindows.create())
    .trigger(CountTrigger.of(10)) // 累计10条数据时触发窗口计算
    .sum(1);

滑动计数窗口(每新增M条数据触发,窗口保留最近N条数据)

inputStream
    .keyBy(tuple -> tuple.f0)
    .window(GlobalWindows.create())
    .trigger(CountTrigger.of(5)) // 每新增5条数据触发一次
    .evictor(CountEvictor.of(10)) // 窗口内仅保留最近10条数据
    .sum(1);

关键提示

  • 全局窗口本身不会自动触发计算,必须配合触发器使用,计数触发是最常用的场景
  • 若需要触发后清空窗口元素,可使用PurgingTrigger.wrap(CountTrigger.of(10))实现

内容的提问来源于stack exchange,提问作者pondin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:52:03