当前位置: 首页 > 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.lryc.cn/news/430143.html

相关文章:

  • 你也想转行成为一名程序员吗?作为过来人的我希望你想清楚这几个问题再做决定
  • Linux文件属性和打包压缩详解
  • 微服务注册到nacos时,注册失败报错解决
  • 基于Sringboot+Vue个人驾校预约管理系统--论文pf
  • python-逆序数(赛氪OJ)
  • PCIE-flit mode retry
  • 使用Obsidian实现Anki快速制卡
  • Python编程:从入门到实践书籍介绍
  • Vue 3 的 emit 简单使用
  • java在实际开发中反常识bug
  • java多线程(三)重排序与Happens-Before
  • RUST知识框架与学习框架
  • git cherry-pick命令使用分享
  • 关闭Chrome快捷键
  • 常见DDoS攻击之零日漏洞Zero-day Attacks
  • 【字符串】Z函数 - 模板
  • MySQL范围分区分区表
  • 网络UDP报文详细解析
  • 望繁信科技入选2024年第3批上海市高新技术成果转化项目名单
  • 深入探讨MySQL的锁机制:全局锁、表级锁和行级锁
  • iLogtail 开源两周年:感恩遇见,畅想未来
  • 写给大数据开发:在Databricks中自定义函数
  • VMware vSphere Client无法访问和连接ESXi虚拟主机解决思路
  • 实现Kruskal算法连通游戏地图地牢
  • turtle画图知识
  • Elasticsearch简述
  • SQL— DDL语句学习【后端 9】
  • 线程池介绍
  • 如何备份电脑所有数据?有哪些方法值得参考借鉴?
  • 初识--树(1)