Spark SQL的查询优化是Catalyst,其基于Scala语言开发,可以灵活利用Scala原生的语言特性方便地扩展功能,奠定了Spark SQL的发展空间。

Spark SQL与传统DBMS的查询优化器+履行器的架构较为相似,只不过其履行器是在散布式环境中完成,并选用Spark作为履行引擎。

Spark SQL的查询优化是Catalyst,其根据Scala言语开发,能够灵敏使用Scala原生的言语特性方便地扩展功用,奠定了Spark SQL的开展空间。

  1. Catalyst将SQL翻译成终究的履行方案,并在这个过程中进行查询优化。
  2. 这儿和传统不太相同的当地就在于,SQL经过查询优化器终究转换为可履行的查询方案,传统DB就能够履行这个查询方案了,但Spark不同。
  3. Spark SQL***履行仍是会在Spark内将履行方案转换为Spark的有向无环图DAG再履行。

Spark SQL架构剖析(spark sql开发)  SQL 架构 分布式 第1张

Catalyst的全体架构

Spark SQL架构剖析(spark sql开发)  SQL 架构 分布式 第2张

从图8-2中能够看到整个Catalyst是Spark SQL的调度中心,遵从传统数据库的查询解析过程,对SQL进行解析,转换为逻辑查询方案和物理查询方案,终究转换为Spark的DAG履行

Catalyst的履行流程

Spark SQL架构剖析(spark sql开发)  SQL 架构 分布式 第3张

  1. SqlParser将SQL句子转换为逻辑查询方案
  2. Analyzer对逻辑查询方案进行特点和联系相关查验
  3. 之后Optimizer经过逻辑查询优化将逻辑查询方案转换为优化的逻辑查询方案
  4. QueryPlanner将优化的逻辑查询方案转换为物理查询方案
  5. prepareForExecution调整数据散布
  6. ***将物理查询方案转换为履行方案进入Spark履行任务。

【本文为51CTO专栏作者“王森丰”的原创稿件,转载请注明出处】

转载请说明出处
知优网 » Spark SQL架构剖析(spark sql开发)

发表评论

您需要后才能发表评论