Flink SQL:时间区间Join

This commit is contained in:
LingZhaoHui 2023-04-05 14:47:51 +08:00
parent ea9885295c
commit 13ecf2e663
Signed by: zeekling
GPG Key ID: D96E4E75267CA2CC
1 changed files with 22 additions and 3 deletions

View File

@ -1,18 +1,37 @@
# 简介
时间区间Join语法
## 时间区间Join左右时间一致
![时间区间Join](https://pan.zeekling.cn/flink/akka/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_001.png)
![时间区间Join](https://pan.zeekling.cn/flink/join/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_001.png)
上图只能Join前后十分钟的数据。
![Join结果](https://pan.zeekling.cn/flink/akka/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_002.png)
![Join结果](https://pan.zeekling.cn/flink/join/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_002.png)
如上图所示表payment_flow中09:50的数据只能和表user_order中09:40到10:00之间的数据做时间区间Join。不在这个时间
区间内的数据关联不上。
## 时间区间左右时间不一致
![时间区间](https://pan.zeekling.cn/flink/join/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_004.png)
Join示例
![join](https://pan.zeekling.cn/flink/join/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_005.png)
# 执行流程
![执行流程](https://pan.zeekling.cn/flink/join/%E6%97%B6%E9%97%B4%E5%8C%BA%E9%97%B4join_003.png)
代码实现TimeIntervalJoin.java
函数processElement1 左流处理。
函数processElement2 右流处理。