开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

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

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

展开
收起
真的很搞笑 2023-12-25 08:06:59 36 0
1 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!

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

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

    image.png

    OutputTag<T> lateDataTag = new OutputTag<T>("late-data") {};
    WindowedStream<T, K, W> windowedStream = ...
    windowedStream
        .sideOutputLateData(lateDataTag)
        .apply(...)
    

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

    2023-12-25 20:47:49
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载