Flink 双流Join基本原理 #11

Closed
zeekling wants to merge 1 commits from flink_sql_join_001 into main
4 changed files with 42 additions and 0 deletions

4
Flink_SQL/README.md Normal file
View File

@ -0,0 +1,4 @@

BIN
Flink_SQL/flinksql_0001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@ -0,0 +1,17 @@
<a title="Hits" target="_blank" href="https://github.com/zeekling/hits"><img src="https://hits.b3log.org/zeekling/flink_book.svg"></a></p>
## 简介
![pic](./flinksql_0001.png)
- LState:存储左边数据流中的数据。
- RState存储右边数据流中的数据。
- 当左边数据流数据到达的时候会保存到LState并且到RState中进行Join。将Join生成的结果数据发送到下游。
- 右边数据流中数据到达的时候会保存到RState当中并且到LState中进行Join然后将Join之嚄胡的结果数据发送到下游。
为了保障左右两边流中需要Join的数据出现在相同节点Flink SQL会利用Join中的on的关联条件进行分区把相同关联条件
的数据分发到同一个分区里面。

View File

@ -9,6 +9,8 @@
# 内存调优
## 目录
- [内存等资源调优](./调优/Resource.md)
- [状态和CheckPoint 调优](./调优/CheckPoint.md)
- [如何分析及处理 Flink 反压](./调优/backpress.md)
@ -16,5 +18,24 @@
# 常见故障排除
## 目录
- [常见问题总结](./常见问题)
# Flink SQL
Flink SQL学习笔记提纲。持续更新。Hive SQL 离线Join VS Flink SQL 双流Join。
| 对比维度 | Hive SQL离线Join | Flink SQL双流Join |
| ---| ----|----|
| 数据源 | 有界(离线数据)| 无界(实时数据) |
| 计算次数 | 一次 | 持续计算 |
| 计算结果 | 有界(离线数据) | 无界(实时数据) |
| 计算驱动 | 单边驱动 | 双边驱动 |
## 目录
- [Flink SQL双流Join底层原理](./Flink_SQL/双流Join底层原理.md)