知识卡片

三种窗口类型的本质区别

专业/工作 · 499.c

内容

窗口是把无界流切成有限数据集以便计算的机制,本质区别在于切分规则:滚动窗口按固定大小连续切分,窗口之间没有数据交叉,一个元素只属于一个窗口;滑动窗口有窗口大小和滑动步长两个参数,步长小于窗口大小时相邻窗口会重叠,一个元素可能同时属于多个窗口,代价是同一条数据要参与多次计算;会话窗口不按固定大小切,而是用”事件间隔超过某个阈值就分割”来动态划窗,适合活跃度不均匀、没有固定周期的场景(如用户会话)。三者都可以基于数量或基于时间来定义边界。选择哪种本质上是在问:业务需要的统计口径是固定周期、重叠周期,还是活跃度驱动的动态周期。这三种切分规则在实现层面共用同一套底层结构,见[[窗口的本质是状态的一个索引维度]]。

参考来源

《Flink入门与实战》第2章《定义、架构与原理》