Flink Table & SQL 概述

背景
Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言。
DataStream 和 DataSet 两套 API,并没有做到事实上的批流统一,因为用户还是使用了2套API。正是因为 Flink Table & SQL 的加入,可以说 Flink 在某种程度上做到了事实上的批流一体。

原理
1、上图是一张经典的 Flink Table & SQL 实现原理图,可以看到 Calcite 在整个架构中处于绝对核心地位。
2、Flink和Hive一样都使用了Apache Calcite, 把SQL的解析、优化和执行交给了他。
3、从图中可以看到无论是批查询 SQL 还是流式查询 SQL,都会经过对应的转换器 Parser 转换成为节点树 SQLNode tree,然后生成逻辑执行计划 Logical Plan,逻辑执行计划在经过优化后生成真正可以执行的物理执行计划,交给 DataSet 或者 DataStream 的 API 去执行。
动态表
1、与传统的表 SQL 查询相比,Flink Table & SQL 在处理流数据时

最低0.47元/天 解锁文章
414

被折叠的 条评论
为什么被折叠?



