当前位置: 首页 > 知识库问答 >
问题:

Flink流:TriggerResult之间的不同。火灾和触发结果。FIRE\u和\u PURGE

平学
2023-03-14

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

以下是我的问题:

会话windows的默认触发器为FIRE。

Flink streaming是否会将每个窗口的所有Kafka消息保留在内存中?或者只保留聚合结果。

如果使用FIRE\u和\u PURGE,将清除什么?

共有1个答案

邵君植
2023-03-14

这里描述了触发和清除,但简单地说,区别在于,FIRE\u和\u PURGE会在触发后删除窗口的内容。

Flink的所有内置窗口分配器(包括会话窗口)都会在时间合适的时候清除它们的内容,即在任何允许的延迟到期之后。但是清除是作为一个单独的步骤完成的,而不是与触发器触发相结合。

Windows的内容保持在Flink状态,因此其位置取决于您使用的后端状态。如果使用基于堆的状态后端,则此状态将保留在堆上;如果使用RocksDB,则此状态将保留在磁盘上。

在清除之前,您的窗口是否保留其全部内容取决于您是否使用增量聚合——换句话说,如果您使用的是reduce、aggregate或fold,则只存储聚合的持续结果,否则它是分配给窗口的所有事件的集合。

 类似资料:
  • 我有这个正则表达式:https://regex101.com/r/vxHtzh/1 我有四场比赛。 但是对于我简单的java代码,我有不同的输出。 输出: 我哪里做错了?

  • 问题内容: 我有一个大问题。我使用此C#函数对消息进行编码: 在Java方面,我使用以下代码段: 我的消息是:阻止|注释|文本!£$%&/()=?^€> <{}ç°§;:_-。,@#ùàòè+ 我有这个结果: 你能帮我吗??谢谢… 问题答案: 我的猜测是您似乎正在将ASCII字节与Latin1字节进行比较。尝试切换 对此 那可能会解决您的问题。 (或切换C#以使用Latin1) 程序中发生的事情是

  • 问题内容: 我正在尝试构建一个应用程序,该应用程序使用流音频输入(例如:麦克风中的一条线),并使用IBM Bluemix(Watson)进行语音转文本。 我简要修改了此处找到的示例Java代码。此示例发送一个WAV,但是我发送的是FLAC …这[无关]不相关。 结果很差,非常差。这是使用Java Websockets代码时得到的: 现在,将上面的结果与下面的结果进行比较。这些是发送相同内容但使用c

  • 问题内容: 我有两个不同的程序,分别希望在Python和Java中使用Murmur3散列相同的字符串。 Python版本2.7.9: 给出79267961763742113019008347020647561319L。 Java是Guava 18.0: 给出字符串“ 6778ad3f3f3f96b4522dca264174a23b”,转换为BigInterger给出1375370730566806

  • 我在oracle数据库上有一个奇怪的行为。我们制作了大约310万条记录的巨大插入。到目前为止一切都很好。 插入完成后不久(大约 1 太 10 分钟),我执行两个语句。 从表中选择计数(*)。 从表中选择* 第一条语句的结果很好,它给出了插入的行的确切数量。 第二个语句的结果现在是问题所在。例如,根据时间的不同,返回的行数比第一个语句的结果低约 500K。两种结果的差异随着时间的推移而减少。 因此,

  • 问题内容: 我有一个bash脚本( ScreamDaemon.sh ),其中添加了一个示例尚未运行的检查。 通常情况下,如果有脚本运行没有另一个副本, 的ps aux | grep ScreamDaemon.sh | wc -l应该返回 2 (它应该找到自己和 grep ScreamDaemon.sh ),但是它返回 3 。 因此,我尝试分析会发生什么,并在添加一些回声后看到: 我已经在脚本中添加