我想使用Flink的事件时间戳并计划实现一个简单的emitWatermark,即System.currentTimeInMillis - 10秒。我的理解是翻滚窗口会触发start_time + window_interval + 10秒。因此,如果事件到达时间晚于水印,那么这些事件将被丢弃。
有没有办法将Flink的所有丢弃事件写入像S3这样的接收器?
答案 0 :(得分:2)
Side Outputs应该可以实现。 sideOutputLateData
运算符的文档说明如下:
将迟到的数据发送到给定{@link OutputTag}标识的侧输出。数据 在水印通过窗口结束加上允许之后被认为是迟到的 使用{@link #allowedLateness(Time)}设置迟到。
那么你可以通过输出标签获取后期数据流并将其下沉到s3。