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

Apache flink ApacheFlink:如何处理水印背后的所有事件?,apache-flink,watermark,flink-streaming,Apache Flink,Watermark,Flink Streaming,我想使用Flink的事件时间戳并计划实现一个简单的emitWatermark,即System.currentTimeInMillis-10秒。我的理解是翻转窗口将启动时间+窗口间隔+10秒。因此,如果事件晚于水印到达,则这些事件将被删除 有没有办法将Flink丢弃的所有事件写入S3这样的接收器 这应该可以通过以下方式实现。sideOutputLateData运算符的文档说明如下: 将延迟到达的数据发送到由给定{@link OutputTag}标识的侧输出。资料 在水印已通过窗口末尾加上允许的 使

我想使用Flink的事件时间戳并计划实现一个简单的emitWatermark,即System.currentTimeInMillis-10秒。我的理解是翻转窗口将启动时间+窗口间隔+10秒。因此,如果事件晚于水印到达,则这些事件将被删除


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

这应该可以通过以下方式实现。
sideOutputLateData
运算符的文档说明如下:

将延迟到达的数据发送到由给定{@link OutputTag}标识的侧输出。资料 在水印已通过窗口末尾加上允许的 使用{@link#allowedLateness(Time)}设置延迟


因此,您可以通过output标记获取最新的数据流,并将其放入s3。

最好显示具体的方法,本质上是
windowedStream.sideOutputLateData(someOutputTag)
然后
outputStream.getSideOutput(someOutputTag)
,这将为您提供另一个
数据流