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

使用as端输出数据流时,Flink如何处理延迟事件?

郑声
2023-03-14

在我看来,Flink以三种方式处理后期事件:

  1. 窗口过期时删除延迟事件(默认)。
  2. 通过使用“允许延迟”机制包含延迟事件来更新窗口。
  3. 使用“侧输出”机制将延迟事件重定向到另一个DataStream。

让我们假设我有一个事件时间作业,它使用来自Kafka的数据,并每5分钟处理一个窗口。现在,假设我将延迟事件重定向到另一个数据流中。

  • 这个新的数据流是独立的吗

谢谢大家!

共有1个答案

席嘉祯
2023-03-14

来自窗口操作符的延迟事件流是一个独立的流,它只包含延迟到允许的延迟不足以容纳它们的事件。

您可以对该流执行任何操作,包括通过另一个窗口发送它。但这些事件仍将延迟,因此您需要使用更宽松的策略重新生成水印,以防止它们仍然延迟,或者延长此新窗口的允许延迟。

窗户总是清理干净。

 类似资料:
  • 我试图开发以下代码,但它不起作用。我想使用apache Flink来延迟时间(在时间戳字段中指定的)与当前日期不同的事件。 样品: > 当前日期:2022-05-06 10:30 事件1[{“user1”:“1”,“user2”:“2”,“timestamp”:“2022-05-06 10:30”}-- 事件2[{“user1”:“1”,“user2”:“2”,“timestamp”:“2022-

  • 下面是我的流处理的伪代码。 上面的代码流程正在创建多个文件,我猜每个文件都有不同窗口的记录。例如,每个文件中的记录都有时间戳,范围在30-40秒之间,而窗口时间只有10秒。我预期的输出模式是将每个窗口数据写入单独的文件。对此的任何引用或输入都会有很大帮助。

  • 我需要延迟处理一些事件。 我有三件事(发表在Kafka上): A(id: 1, retry At: now) B(id: 2, retry At: 10分钟后) C(id: 3, retry At: now) 我需要立即处理记录A和C,而记录B需要在十分钟后处理。这在Apache Flink中实现可行吗? 到目前为止,无论我研究了什么,“触发器”似乎都有助于在Flink中实现它,但还没有能够正确实

  • 到目前为止,我了解到有3种方法可以处理Flink中的后期数据: > 删除延迟事件(这是事件时间窗口运算符的默认行为。(因此,延迟到达的元素不会创建新窗口。)( 重定向延迟事件(也可以使用side输出功能将延迟事件重定向到另一个数据流) 通过包含延迟事件更新结果(重新计算不完整的结果并发出更新) 我不太清楚非窗口操作符的延迟事件会发生什么,特别是当时间戳被分配到源时。这里我有一个FlinkKafka

  • 鞋子(事件)被定义为它的颜色并且是(如果鞋子是左腿的,那么,否则是的)。 如何形成一双相同颜色的鞋,并期望匹配的鞋立即发出,不匹配的鞋等待其配对,直到窗口结束。 尝试的方法(忽略此项以避免混淆): > 通过将流拆分为左和右,并在连接上加窗(会产生成本吗?) > TumblingWindowJoin:窗口函数不能处理不匹配的对。窗户开过后,那只鞋就丢了。 CoGroupFunction:窗口不会为最