FLINK流:TriggerResult.fire和TriggerResult.fire_and_purge之间的不同



我是Flink的新手。我有一个flink流媒体程序,该程序在10秒的会话Windows中计算出Kafka的内容。

这是我的问题:

会话窗口默认触发器是fire。

flink流将使每个窗口的所有kafka消息都保存在内存中?还是只保留聚合的结果。

如果我使用fire_and_purge,将清除什么?

在此处描述和清除,但简单地说,触发后fire_and_purge删除了窗口的内容。

Flink的所有内置窗口分配程序(包括会话窗口)在正确的时间(即在任何允许的迟到过期之后)清除其内容。但是清除是作为一个单独的步骤完成的,而不是与扳机发射结合。

Windows的内容保持在缩小状态,因此它们的位置取决于您正在使用哪种状态。如果您使用的是基于堆的状态后端,则该状态将保持在堆里,如果您使用的是RockSDB,则将保留在磁盘上。

您的窗户是否保留其完整内容,直到清除它们取决于您是否正在使用增量聚合 - 换句话说,如果您使用的是减少,聚合或折叠,则只有聚合的持续结果正在存储,否则是分配给窗口的所有事件的集合。

相关内容

  • 没有找到相关文章

最新更新