FLink 源码分析--(四)Regular Join(普通join)

本文详细解析Apache Flink的Regular Join,包括其SQL语义、分类、实例和原理架构。Regular Join允许左右两侧流数据长时间保存,不区分时间条件。文章介绍了其物理算子创建、Join状态管理,以及如何限制状态大小以防止无限增长。
摘要由CSDN通过智能技术生成

一、概述

1、SQL Join语义介绍

在这里插入图片描述

INNER JOIN - 内连接,返回满足条件的记录;
LEFT OUTER - 返回左表所有行,右表不存在补NULL;
RIGHT OUTER - 返回右表所有行,左边不存在补NULL;
FULL OUTER -  返回左表和右表的并集,不存在一边补NULL;
CROSS JOIN - 交叉连接,计算笛卡儿积,一般来说代价较大;
SELF JOIN - 自连接,将表查询时候命名不同的别名,进行逻辑变换后,重新连接;

在这里插入图片描述

INNER OUTER CROSS SELF ON WHERE
Apache Flink Y Y N Y 必选 可选
  • Apache Flink目前主要支持INNER JOIN和OUTER JOIN(LEFT/RIGHT/FULL OUTER)
  • 在语义上面Apache Flink严格遵守标准SQL的语义
  • SELF 可以转换为普通的INNER和OUTER。

2、FLink Join实现分类

在遵循标准SQL语义前提下,对于流计算不同的内部场景,Flink具有不同的实现方式,总结Flink Join有以下五种实现类型:

A、Regular Join(普通Join)
  • 左、右侧新记录或回撤记录,都会去对侧,查找匹配的记录,并影响整个连接结果
  • 如果在左侧有一个新记录,那么它将与右侧所有
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值