java - Apache Flink : aligning watermark among parallel tasks

标签 java streaming apache-flink

我们正在使用带水印的周期性事件时间窗口。我们的 Flink 应用程序中目前有 4 个并行任务。

在流式传输过程中,所有 4 个任务的水印值都必须接近触发窗口事件。

For example;

Task 1 watermark value = 8

Task 2 watermark value = 1

Task 3 watermark value = 8

Task 4 watermark value = 8



任务 2 正在等待日志更新其水印。然而,这种情况可能发生在任务 2 的更新之前,我们希望在它之前触发窗口事件。

是否有任何机制可以在不等待其他任务的情况下对齐所有并行任务的水印或触发窗口事件?

最佳答案

这已经在@Til Rohrmann 的评论中得到了回答,主要答案是:

If you want to look for 3 senders which are the same person, then you should keyBy the person and then simply use a count window to generate the alerts. Maybe you also wanna filter out duplicate senders for the same person.


后续问题:

But we need to consider also the event time. For example 3 senders in 10 minutes(event time not process time)


后续回答:

Then you can use an event time window with a custom trigger which fires when it has seen 3 elements.


我想批判性的结论是:
如果你想触发某个东西的计数,keyBy 那个字段。

关于java - Apache Flink : aligning watermark among parallel tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36195501/

相关文章:

node.js - 请求模块,浏览器取消时如何停止流式传输

java - Flinkrocksdb压缩过滤器不工作

google-cloud-dataflow - Apache Beam 中全局窗口上基于时间的触发器

java - 使用类来创建对象

java - 如何从数组创建并行流?

java - Java Integer 和 Double 对象是否有不必要的开销?

web - 如何从流媒体网站下载文件?

java - 如何将数据流式传输到操作链中

apache-flink - 具有窗口和状态的 flink 聚合

java - 替换多个 if 语句抛出异常的优雅方式