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

flink中,join如果不指定窗口,会把join结果一直存储下来吗?

flink中,join如果不指定窗口,会把join结果一直存储下来吗?

展开
收起
cuicuicuic 2024-03-19 12:17:35 16 0
1 条回答
写回答
取消 提交回答
  • 桃李春风一杯酒,江湖夜雨十年灯。

    Apache Flink 中,如果不指定窗口进行 join,join 结果不会无限期地存储下来。在无窗口的情况下进行 join,Flink 会根据数据流的到达顺序和关联键进行即时 join。也就是说,每一对符合 join 条件的数据元素到达时,就会立即执行 join 操作并生成结果。

    对于无界流处理,如果不指定时间窗口或者滑动窗口等窗口机制,Flink 的流式 join(比如基于 KeyedStream 的 join)会假设两边流的数据都是无界的,并且 join 操作是基于事件时间(event-time)或者处理时间(processing-time)的即时关系进行的。在这种情况下,join 结果会随数据流动态产出,但不会长久存储,除非显式地将结果存储到外部系统(如数据库、消息队列或文件系统)中。

    对于批处理模式,Flink 会一次性处理完所有的数据,join 操作的结果会被完整计算出来,但这并不是因为 join 操作本身存储了结果,而是因为它是在有限数据集上执行的。

    简而言之,无论是在流处理还是批处理模式下,Flink 的 join 操作本身都不会持久化 join 结果,除非你使用了诸如侧输出流(side output)或外部存储机制来保存结果。

    2024-03-19 13:48:49
    赞同 展开评论 打赏

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

相关产品

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

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