催化剂优化器

回到术语表

火花SQL是催化剂优化器的核心,它利用高级编程语言特性(例如Scala的模式匹配和准引号)小说的方式来构建一个可扩展的查询优化器。Scala中的催化剂是基于函数式编程构造和设计这些关键的两个目的:

  • 轻松添加新的火花SQL优化技术和特性
  • 使外部开发人员扩展优化器(例如添加数据源特定的规则,对新数据类型的支持,等等)。

催化剂优化器图催化剂包含一个通用库代表树木和应用规则来操纵它们。这个框架之上,图书馆具体关系查询处理(例如,表达式,逻辑查询计划),和几套规则处理查询执行的不同阶段:分析、逻辑优化,物理规划和代码生成查询Java字节码编译的部分。对于后者,它使用另一个Scala特性,但是,这很容易生成代码在运行时从可组合表达式。催化剂还提供了几个公开扩展点,包括外部数据源和用户定义的类型。催化剂,同时支持基于规则和基于成本的优化。

    回到术语表