SparkSQL Catalyst解析

  1. 云栖社区>
  2. Apache Spark中国技术社区>
  3. 博客>
  4. 正文

SparkSQL Catalyst解析

寒沙牧 2018-11-25 23:15:01 浏览2579
展开阅读全文

Catalyst Optimizer是SparkSQL的核心组件(查询优化器),它负责将SQL语句转换成物理执行计划,Catalyst的优劣决定了SQL执行的性能。

查询优化器是一个SQL引擎的核心,开源常用的有Apache Calcite(很多开源组件都通过引入Calcite来实现查询优化,如Hive/Phoenix/Drill等),另外一个是orca(HAWQ/GreenPlum中使用)。

关系代数是查询优化器的理论基础。常见的查询优化技术:查询重用(ReuseSubquery/ReuseExchange等)/RBO/CBO等。

SparkSQL执行流程

sql1

SparkSQL中对一条SQL语句的处理过程如上图所示:
1) SqlParser将SQL语句解析成一个逻辑执行计划(未解析)
2) Analyzer利用HiveMeta中表/列等信息,

网友评论

登录后评论
0/500
评论
寒沙牧
+ 关注
所属云栖号: Apache Spark中国技术社区