Apache flink Flink流窗口内存使用

Apache flink Flink流窗口内存使用,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在评估Flink是否支持流媒体窗口以生成可能的警报。我关心的是内存使用情况,因此如果有人能帮上忙,我们将不胜感激 例如,该应用程序将在给定的滚动窗口(例如5分钟)内消耗流中潜在的大量数据。在评估时,如果有一百万个文档符合标准,它们会全部加载到内存中吗 一般流程如下: producer->kafka->flinkkafkaconsumer->table.window(翻滚(“5.minutes”)。选择(“…”)。其中(“…”)。writeToSink(someKafkaSink) 此外,如果

我正在评估Flink是否支持流媒体窗口以生成可能的警报。我关心的是内存使用情况,因此如果有人能帮上忙,我们将不胜感激

例如,该应用程序将在给定的滚动窗口(例如5分钟)内消耗流中潜在的大量数据。在评估时,如果有一百万个文档符合标准,它们会全部加载到内存中吗

一般流程如下:

producer->kafka->flinkkafkaconsumer->table.window(翻滚(“5.minutes”)。选择(“…”)。其中(“…”)。writeToSink(someKafkaSink)

此外,如果有一些清晰的文档描述了在这些情况下如何处理内存,我可能忽略了有人可能会指出这一点,这将是有帮助的


感谢为组窗口聚合存储的数据量取决于聚合的类型。许多聚合函数,如
计数
求和
,和
最小值
/
最大值
,都可以预聚合,也就是说,它们只需要为每个窗口存储一个值
MEDIAN
或某些用户定义的聚合函数需要存储所有值,然后才能计算结果

聚合需要存储的数据存储在中。根据状态后端的选择,数据可能存储在JVM堆的内存中,也可能存储在RocksDB实例的磁盘上

表API查询也由关系优化器(基于Apache Calcite)进行优化,以便将过滤器尽可能推向源。根据谓词,过滤器可能在聚合之前应用


最后,您需要在示例查询中的
window()
select()
之间添加一个
groupBy()

谢谢,您提供的状态后端链接似乎就是我要找的。