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

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

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

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

  1. allowedLateness:可以为事件时间窗口设置一个允许的延迟时间,在延迟时间内到达的迟到的数据仍然会被处理。你可以使用allowedLateness方法来设置允许的延迟时间。比如设置一个6小时的允许延迟时间:
    在一个flink任务中需要近1小时和近6小时的特征,这种在生产上一般用事件时间还是处理时间?-[阿里云_云淘科技]
WindowedStream windowedStream = ...
windowedStream
    .allowedLateness(Time.hours(6))
    .apply(...)
  1. side output:当窗口关闭时,如果还有迟到的数据到达,你可以将这些数据发送到一个侧输出流进行处理。可以使用getSideOutput方法获取侧输出流数据。比如将迟到的数据发送到一个侧输出流:

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

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

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

本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/18660.html

(0)
匿名
上一篇 2023年12月25日 上午8:06
下一篇 2023年12月25日

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。