spark-Catalyst 优化器和 Tungsten 执行引擎介绍
目录
- 一、Catalyst 优化器是什么?
- 1.定义
- 2. 作用
- 3. 工作流程
- 4. 特点
- 二、Tungsten 执行引擎是什么?
- 1. 定义
- 2. 作用
- 3. Tungsten 主要优化点
- 4.代码生成示例
- 三、两者关系总结
- 四、举个简单例子
Catalyst 优化器 和 Tungsten 执行引擎 是 Spark SQL 的两个核心组件,理解它们对深入掌握 Spark SQL 的性能优化非常关键。
一、Catalyst 优化器是什么?
1.定义
Catalyst 是 Spark SQL 的查询优化框架,负责将用户的 SQL 查询或者 DataFrame 操作转换成高效的执行计划。它是一个基于规则的、可扩展的查询优化器。
2. 作用
- 将解析后的逻辑查询计划(Logical Plan)进行优化,生成更高效的逻辑计划和物理计划。
- 支持多种优化策略,包括谓词下推、列裁剪、常量折叠、子查询消除、连接重排序等。
- 通过规则和策略的组合,自动优化查询,无需用户手动干预。
- 常量折叠(Constant Folding):将表达式中常量计算提前。
- 谓词下推(Predicate Pushdown):将过滤条件尽可能早地应用,减少数据量。
- 投影剪裁(Projection Pruning):只读取和处理必要的列。
- 子查询消除、连接重排序等。
</