Spark SQL 性能优化再进一步:CBO 基于代价的优化

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

Spark SQL 性能优化再进一步:CBO 基于代价的优化

开源大数据EMR 2019-02-15 11:20:38 浏览2938
展开阅读全文

转载请务必将下面这段话置于文章开头处。

本文转发自技术世界原文链接 http://www.jasongj.com/spark/cbo/

Spark CBO 背景

上文Spark SQL 内部原理中介绍的 Optimizer 属于 RBO,实现简单有效。它属于 LogicalPlan 的优化,所有优化均基于 LogicalPlan 本身的特点,未考虑数据本身的特点,也未考虑算子本身的代价。

本文将介绍 CBO,它充分考虑了数据本身的特点(如大小、分布)以及操作算子的特点(中间结果集的分布及大小)及代价,从而更好的选择执行代价最小的物理执行计划,即 SparkPlan。

Spark CBO 原理

CBO 原理是计算所有可能的物理计划的代价,并挑选出代价最小的物理执行计划。其核心在于评估一个给定的物理执行计划的代价。

物理执行计划是一个树状结构,其











网友评论

登录后评论
0/500
评论
开源大数据EMR
+ 关注
所属云栖号: Apache Spark中国技术社区