0°

在一个flink任务中需要近1小时和近6小时的特征,这种在生产上一般用事件时间还是处理时间?[阿里云]

在一个flink任务中需要近1小时和近6小时的特征,这种在生产上一般用事件时间还是处理时间?如果用事件事件窗口可能不关闭怎么办?

以下为热心网友提供的参考意见

楼主你好,在一个阿里云Flink任务中,使用事件时间还是处理时间窗口取决于你的需求和数据流的特点。如果你决定使用事件时间窗口,并且担心窗口不会关闭的问题,可以考虑使用allowedLatenessside output来处理。

  1. allowedLateness:可以为事件时间窗口设置一个允许的延迟时间,在延迟时间内到达的迟到的数据仍然会被处理。你可以使用allowedLateness方法来设置允许的延迟时间。比如设置一个6小时的允许延迟时间:
WindowedStream windowedStream = ...
windowedStream
    .allowedLateness(Time.hours(6))
    .apply(...)
  1. side output:当窗口关闭时,如果还有迟到的数据到达,你可以将这些数据发送到一个侧输出流进行处理。可以使用getSideOutput方法获取侧输出流数据。比如将迟到的数据发送到一个侧输出流:

OutputTag lateDataTag = new OutputTag("late-data") {};
WindowedStream windowedStream = ...
windowedStream
    .sideOutputLateData(lateDataTag)
    .apply(...)

然后,你可以使用getSideOutput方法获取侧输出流的数据。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====