1. 程式人生 > >Spark原理 | SparkSQL Catalyst解析

Spark原理 | SparkSQL Catalyst解析

Catalyst Optimizer是SparkSQL的核心元件(查詢優化器),它負責將SQL語句轉換成物理執行計劃,Catalyst的優劣決定了SQL執行的效能。

查詢優化器是一個SQL引擎的核心,開源常用的有Apache Calcite(很多開源元件都通過引入Calcite來實現查詢優化,如Hive/Phoenix/Drill等),另外一個是orca(HAWQ/GreenPlum中使用)。

關係代數是查詢優化器的理論基礎。常見的查詢優化技術:查詢重用(ReuseSubquery/ReuseExchange等)/RBO/CBO等。

SparkSQL執行流程
SparkSQL中對一條SQL語句的處理過程如上圖所示:
image


1.SqlParser將SQL語句解析成一個邏輯執行計劃(未解析)