当前位置: 首页 > news >正文

(八)Flink Join 连接

在分布式数据处理中,JOIN 是一个非常重要的操作。Flink 的 JOIN 是用于将两个数据流按照一定的条件进行连接,生成新的数据流。Flink 双流 JOIN 主要分为两大类:一类是基于窗口的 JOIN 操作,另一类是基于原生 State 的 Connect 算子操作。其中基于窗口的 JOIN 可细分为 Window Join、coGroup、Interval Join 三种。下面我们将对这三种 JOIN 做详细介绍。

目录

Window Join

coGroup

Interal Join


Window Join

Window Join 作用在两个流中有相同 key 且处于相同窗口的元素上。这些窗口可以通过 window assigner 定义,并且两个流中的元素都会被用于计算窗口的结果。 两个流中的元素在组合之后,会被传递给用户定义的 JoinFunction 或 FlatJoinFunction,用户可以用它们输出符合 Join 要求的结果。 底层原理:两条实时流数据缓存在 Window State 中,当窗口触发计算时,执行 Join 操作。

常见的用例可以总结为以下代码:

Stream1.join(Stream2).where(<KeySelector>).equalTo(<KeySelector>).window(<WindowAssigner>).apply(<JoinFunction>);

语义上有一些值得注意的地方:

两个流中创建成对的元素与 inner-join 类似,即一个流中的元素在与另一个流中对应的元素完成 join 之前不会被输出。

完成 join 的元素会将他们的 timest


http://www.mrgr.cn/news/2712.html

相关文章:

  • 五、SPA 单页面、MPA多页面的理解?它们的优缺点分别是什么?
  • Vue50 todolist自定义事件版本
  • 如何用ChatGPT 4.0创作高质量的小红书笔记?
  • 秋招力扣Hot100刷题总结——动态规划
  • HanLP分词的使用与注意事项
  • JsSIP Demo
  • 【自动驾驶】控制算法(三)轮胎侧偏与车辆动力学模型
  • MyBatis系列
  • 【adb】Mac配置adb环境踩坑记录
  • java版知识付费saas租户平台:剖析现代知识付费平台的功能架构与运营逻辑
  • Ubuntu下通过Docker部署Synapse服务器技术博客
  • 排序(归并排序,非比较排序)
  • Java面试篇(多线程相关专题)
  • 六、什么是SEO优化(搜索引擎优化)?SPA单页面应用如何实现SEO优化?
  • RCE编码绕过--php://filter妙用
  • Linux驱动开发基础(中断)
  • 【YOLO5 项目实战】(4)红外目标检测
  • [C++] map、set的 红黑树 封装(一)
  • python从入门到精通:数据容器
  • AI -- Machine Learning