![](https://img-blog.csdnimg.cn/cec65e07c7054586a05ffebd4ee4a6c3.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink
文章平均质量分 82
主要收录FlinkSQL中Calcite相关的实现原理
喜欢coding的谢同学
2020年网易实习
2021年字节跳动校招
小Red书同名,一起努力学习吧~
展开
-
从Flink看看Calcite的使用方式
文章目录前言分析parseplanner 前言 已经有过一些博客介绍了Calcite的源码,但还没有介绍过如何使用Calcite的。Flink解析和优化用的都是Calcite,加上Flink的代码质量,应该是最适合参考的项目之一了。 分析 Flink一直致力于流批一体的处理,重构了不少代码,但是SQL的解析优化都在table模块中 1.14.3的flink依赖的calcite版本是1.26.0 parse Flink有很多自己的语法,所以在flink-sql-parse中自定义了很多语法。Flink沿用了原创 2022-02-03 17:01:41 · 1742 阅读 · 0 评论 -
从Flink1.8看看Calcite的优化规则怎么用
文章目录前言优化优化方式runHepPlannerrunVolcanoPlanner入口总结 前言 在Flink1.9之前只使用Calcite进行优化,之后因为Blink的合入才带来了Flink自己的优化策略。本文以Flink1.8为例子,看看Calcite的优化规则应该怎么使用。 优化 优化方式 Calcite有两种优化方式,Flink所有的优化规则也都是用的这两种 runHepPlanner Flink在使用HepPlanner的时候拆成了三层,最底层的负责创建Calcite的HepPlanner并执行原创 2022-03-06 16:31:24 · 2006 阅读 · 0 评论 -
Flink计算列实现原理
文章目录CreateParseValidateConvertExecuteSelectParseValidateConvert Create Parse 直接使用CalciteParser将String的Sql解析为SqlNode,虚拟列对应的SqlNode的SqlComputedColumn 在Flink的设计文档中,虚拟列也被称为计算列。其实应该是刻意与Calcite原生的虚拟列区分开,因为Flink的计算列在Calcite的虚拟列上进行了一些封装。 Validate Flink不对DDL做val原创 2022-04-03 14:22:44 · 1911 阅读 · 0 评论