calcite
ccllcaochon1
这个作者很懒,什么都没留下…
展开
-
Calcite 若干概念说明
1. Calcite中主要数据结构转化流程Calcite数据结构转化如图所示,SQL在Calcite中会经历以上流程,最终会生成优化过后的RelNode, 下面就以图中的各个点数据结构进行说明2. SQL到SqlNode通过Parser, 可以将Sql转化成SqlNode, 什么是SqlNode? SqlNode是Calcite中用于表达关系运算的中间数据结构,这么说可能有些抽...转载 2019-06-22 20:34:26 · 1954 阅读 · 0 评论 -
Calcite中定制自已SQL解析器
1. 什么Sql Parser所谓Sql Parser, 就是根据某种特定的定义而生成的Sql 语法解析器。 打个比方: 在计算器中输入 1 + 2 = 之所以可以得到结果3是因为是计算器可以准确地根据上述字符解析出相应的输入参数与算法,进而计算到最终的结果。 如果输入的是1 +- 2 = 计算器可能就会提示错误, 这其实就是类似于SQL中提示语法错误,而在处理SQL的过程与处理上面的例子很类...转载 2019-06-22 21:28:18 · 7494 阅读 · 4 评论 -
Apache Calcite 简介
1. 什么是Apache Calcite ?Apache Calcite 是一款开源SQL解析工具, 可以将各种SQL语句解析成抽象语法术AST(Abstract Syntax Tree), 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中。Calcite的生前为Optiq(也为Farrago), 为Java语言编写, 通过十多年的发展, 在2013年成为Apach...转载 2019-06-22 21:29:29 · 526 阅读 · 0 评论 -
Calcite中注册函数
很多同学在使用Calcite的过程中需要自定义函数, 现在讲讲如何定自义函数1. Calcite 内置函数和对应的流程Calcite中内置的函数主要在SqlStdOperatorTable中, 包括常见的算术运算符、时间函数等。现在就以一个列子来说明在SqlStdOperatorTable 中添加函数以达到注册函数的功能在SqlStdOperatorTable.java 中添加对应函数...转载 2019-06-22 22:22:48 · 2383 阅读 · 0 评论 -
Calcite RBO简介
RBO1. 简介RBO(Rule based optimization) 基于规则的优化。是指采用指定的等价关系代数表达式规则进行优化。所谓的等价关系代数表达式是指能产生同一结果的不同的关系表达式,比如说等价关系代数示列示列中 左图中先进行Join然后再作Filter, 而右图中先分别对Join左右两边作Filter,然后再作Filter。一般情况下右图中的执行计划会优于左边,...转载 2019-06-23 00:29:48 · 883 阅读 · 0 评论 -
Calcite CBO 分析1
CBO 概念提到CBO(Cost based optimization) , 如果学习过Spark SQL, HSQ的读者应该对此不会陌生,CBO的主要思想是利用等价表式替换的方式加上代价计算框架和模型迭代来优化一个SQL执行计划, 也就是说CBO = RBO + Cost Model + Model Iteration即CBO 是以RBO为基础, 通过代价模型,在一定的时间空间范围内重复迭...转载 2019-06-23 18:02:19 · 732 阅读 · 0 评论