Apache Calcite
孤寂的夜总有繁星点点
这个作者很懒,什么都没留下…
展开
-
Apache Calcite VolcanoPlanner源码学习
calcite VolcanoPlanner是基于Cascades模型的自顶向下的查询优化器,具体模型细节可以参见Cascade模型,Volcano模型 在这里以举例的方式解释VolcanoPlanner的整体工作流程// SqlVolcanoTest.javapublic class SqlVolcanoTest { private static final Logger LOG...原创 2019-12-09 16:28:45 · 1306 阅读 · 1 评论 -
Apache Calcite HepPlanner源码学习
calcite提供了两种查询优化器:基于规则的启发式优化器HepPlanner(rule-based optimizer RBO)基于代价的VolcanoPlanner(cost-based optimizer CBO)本篇介绍HepPlanner的工作原理。在HepPlannerTest.java中添加如下代码进行源码分析:// HepPlannerTest.java @Tes...原创 2019-12-09 16:28:16 · 906 阅读 · 0 评论 -
Apache Calcite converter源码学习
当sqlNode经过验证后,calcite通过converter将sqlNode转化为relNode,也就是将AST转化为逻辑执行计划。 final SqlNode validatedQuery = validator.validate(sqlQuery); RelRoot root = converter.convertQuery(validatedQuery, false, tru...原创 2019-12-09 16:27:47 · 937 阅读 · 1 评论 -
Apache Calcite validator源码学习
Apache Calcite是一款基础SQL处理框架,该框架提供SQL解析优化等功能,并被广泛运用于Apache Hive,Drill,Flink等项目中。Apache Calcite架构 Apache Calcite整体架构如下图所示validate过程 我们在SqlValidatorTest.java文件中添加如下代码,通过举例进行说明// SqlValidatorTest.ja...原创 2019-12-09 16:27:23 · 1152 阅读 · 0 评论