flink sql 流批一体化

流批一体化的实现逻辑。

https://www.cnblogs.com/wynjauu/articles/11654838.html
flinksql 追加模式和缩进模式。
(有的算子在收到一条新数据之后,需要 做update。比如 groupByAndCount,需要delete old state and insert new state)
https://zhuanlan.zhihu.com/p/157265381
【这篇文章写的非常好】

1,对于上层用户,也就是table api & SQL
2, 主要变化在 SQL->logical plan -> execution plan这一层,之前是分开来处理,
目前是统一一套框架。这得益与中国alibaba贡献的blink planer 执行引擎。主要特色:

Flink SQL 利用 Apache Calcite 将 SQL 翻译为关系代数表达式,使用表达式折叠(Expression Reduce),下推优化(Predicate / Projection Pushdown )
等优化技术生成物理执行计划(Physical Plan),利用 Codegen 技术生成高效执行代码。
Flink SQL 使用高效的二进制数据存储结构 BinaryRow 加速计算性能;
使用 Mini-batch 攒批提高吞吐,降低两层聚合时由 Retraction 引起的数据抖动;
聚合场景下数据倾斜处理和 Top-N 排序的优化原理。

3.join的优化:
mergejoin,hashjoin,broadcastJoin
https://blog.csdn.net/lp284558195/article/details/80717219

最优化的是 小标做 hashtable,join 大表。
两个大表做外存,mergesortjoin。

推荐阅读更多精彩内容