Apache Flink:如何处理水印背后的所有事件?

时间:2018-04-13 13:20:01

标签: apache-flink watermark flink-streaming

我想使用Flink的事件时间戳并计划实现一个简单的emitWatermark,即System.currentTimeInMillis - 10秒。我的理解是翻滚窗口会触发start_time + window_interval + 10秒。因此,如果事件到达时间晚于水印,那么这些事件将被丢弃。

有没有办法将Flink的所有丢弃事件写入像S3这样的接收器?

1 个答案:

答案 0 :(得分:2)

Side Outputs应该可以实现。 sideOutputLateData运算符的文档说明如下:

  

将迟到的数据发送到给定{@link OutputTag}标识的侧输出。数据        在水印通过窗口结束加上允许之后被认为是迟到的        使用{@link #allowedLateness(Time)}设置迟到。

那么你可以通过输出标签获取后期数据流并将其下沉到s3。