
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.0parseFlink有很多自己的语法,所以在flink-sql-parse中自定义了很多语法。Flink沿用了原创 2022-02-03 17:01:41 · 1836 阅读 · 0 评论 -
从Flink1.8看看Calcite的优化规则怎么用
文章目录前言优化优化方式runHepPlannerrunVolcanoPlanner入口总结前言在Flink1.9之前只使用Calcite进行优化,之后因为Blink的合入才带来了Flink自己的优化策略。本文以Flink1.8为例子,看看Calcite的优化规则应该怎么使用。优化优化方式Calcite有两种优化方式,Flink所有的优化规则也都是用的这两种runHepPlannerFlink在使用HepPlanner的时候拆成了三层,最底层的负责创建Calcite的HepPlanner并执行原创 2022-03-06 16:31:24 · 2110 阅读 · 0 评论 -
Flink计算列实现原理
文章目录CreateParseValidateConvertExecuteSelectParseValidateConvertCreateParse直接使用CalciteParser将String的Sql解析为SqlNode,虚拟列对应的SqlNode的SqlComputedColumn在Flink的设计文档中,虚拟列也被称为计算列。其实应该是刻意与Calcite原生的虚拟列区分开,因为Flink的计算列在Calcite的虚拟列上进行了一些封装。ValidateFlink不对DDL做val原创 2022-04-03 14:22:44 · 1994 阅读 · 0 评论