Kafka Streaming Suppress功能可处理超出宽限期的交易

时间:2019-05-15 02:51:05

标签: apache-kafka-streams

我当前正在使用Kafka流DSL抑制功能来显示日窗。我们可能会遇到这样的情况,其中某些事件可能会在宽限期之后很晚才发生。

根据kafka流媒体文档,此类事件将被丢弃,不适合窗口。

请帮帮我。

1)是否有可能在同一流程中掌握此类丢弃的事件?

Apache flink确实提供了此类非常晚的事件的保存,并且想知道此类功能是否可以在流媒体中使用。

2)考虑到数百万个事件流经系统,用DSL抑制间歇性聚合数据在内存中的可行性,对于天窗而言,如何可行?

任何时间表Kafka流媒体社区都将尽快提供rockDB支持,以避免由于内存不足而导致应用程序崩溃。

1 个答案:

答案 0 :(得分:1)

  

我当前正在使用kafka流DSL抑制功能来显示日窗。我们可能会遇到一些情况,在宽限期之外,某些事件可能会非常晚。

     

根据kafka流媒体文档,此类事件将被丢弃,不适合窗口。 [...]

     

1)是否有可能在同一流程中保留此类丢弃的事件?

您需要增加宽限期。宽限期的要点是允许您定义您可以接受(非常)晚的事件到达多长时间。宽限期实际上可以比窗口大小长-我之所以提及是因为您提到了“它不适合窗口”。

在我看来,您好像要接受较晚的事件,但是您不想增加宽限期。为什么?

  

Apache flink确实提供了此类非常晚的事件的保存,并且想知道此类功能是否可以在流媒体中使用。

如果您的意思是:在Kafka Streams中是否有类似回调的事件,那么答案是否定的。

  

2)考虑到系统中有数百万个事件流,用DSL抑制间歇性聚合数据在内存中的可行性,对于天窗而言,如何可行?

     

任何时间表Kafka流媒体社区都将尽快提供rockDB支持,以避免由于内存不足而导致应用程序崩溃。

对于其他读者:RocksDB已经被支持,并且是Kafka Streams中所有有状态操作的默认状态存储引擎。唯一的例外是Supress()功能的当前实现,其中抑制缓冲区尚未通过RocksDB维护。

关于您的问题:KAFKA-7224: Add spill-to-disk for Suppression的开发工作正在进行中,但是确切的ETA尚不清楚。