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

Flink了解后期事件vs watermark

糜博远
2023-03-14

看看这篇关于水印的文章

在那篇文章的后面,它解释了当设置允许迟到时:

Flink不会丢弃邮件,除非它超过了window\u end\u允许的延迟时间

由于设置了允许的延迟,是否实际导致了对窗口的延迟评估?

那么水印和允许迟到的用法到底有什么不同呢?什么时候使用哪个?

共有1个答案

子车灿
2023-03-14

水印延迟设置了Flink在第一次触发窗口之前等待无序事件的时间下限。

允许的迟到时间决定了Flink在窗口状态下的停留时间。在窗口状态仍然可用时出现的任何延迟事件将再次触发窗口,使其生成更新的结果。

一旦允许的延迟过期,窗口的状态将被清除,任何极晚的事件将被丢弃或发送到一个侧面输出。

如果窗口输出的下游消费者可以处理像这样接收窗口结果的更新(例如,窗口连接到实时仪表板),那么设置相对较短的水印延迟并自由使用允许的延迟可能是有意义的。另一方面,如果在初始结果之后您不能利用任何东西,您将希望使水印延迟足够大以满足您对准确性/完整性的要求,并将允许的延迟设置为零。

 类似资料:
  • 我有一个用例,需要以不同的方式处理延迟事件和正常事件:如果事件在其窗口关闭后到达,则应将其发送到另一个路径。 我想是这样的。sideOutputLateData(..) 可以帮我解决这个问题。在正常情况下(即使用真实世界的数据)也是如此。但如果我想用伪造的数据来测试它,它就会停止工作。 我希望类似于: 将导致: 相反,我得到了: 如果我使用socketTextStream作为具有相同数据的源,它将

  • 问题内容: 我正在考虑,这是我想到的: 假设我们有这样的代码: 一个请求进入,并且JS引擎逐步开始执行上述代码。前两个呼叫是同步呼叫。但是当涉及到方法时,它将成为异步执行。但是JS立即从中返回并继续执行,这称为或。并且它继续在其他等等上工作。 执行结果如下: 交流数据库 因此,基本上第二个首先完成,其回调函数比第一个早执行,这是有道理的。 我们在这里谈论单线程应用程序。JS Engine会继续执行

  • 尽管Flink有一些内置的工具来处理延迟数据,比如允许延迟,但我想自己处理延迟数据。例如,我想监控延迟事件或将它们保存到数据库中。 我该怎么做?

  • 请检查上面的代码,并告诉我是否做得正确。在事件时间和水印分配之后,我想在process函数中处理流,其中我将为不同的密钥收集10分钟的流数据。

  • 问题内容: 我无法确切了解其功能。我以为自己了解了,但似乎无法复制自己的感觉: 虽然是循环的,我会寄过来几个请求,假设将排队几次身后有只在被排队完成。 如果我对它的工作方式是正确的,我认为结果将如下所示: 但这不是连续的: 我看到这是在执行之前返回的,这是预期的,但似乎是NEXT在行,而不是在队列的末尾,在所有请求的后面。这是它的工作方式吗?也许我只是不了解节点中事件队列的工作原理。而且请不要在这

  • 我有一个flink cep代码,可以从套接字读取数据并检测模式。假设模式(单词)为“警报”。如果单词alert出现五次或五次以上,则应创建一个警报。但我得到了一个输入不匹配错误。Flink版本为1.3.0。提前谢谢!!