EMR Spark Runtime Filter性能优化

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

EMR Spark Runtime Filter性能优化

寒沙牧 2019-07-04 16:32:29 浏览3747
展开阅读全文

背景

Join是一个非常耗费资源耗费时间的操作,特别是数据量很大的情况下。一般流程上会涉及底层表的扫描/shuffle/Join等过程, 如果我们能够尽可能的在靠近源头上减少参与计算的数据,一方面可以提高查询性能,另一方面也可以减少资源的消耗(网络/IO/CPU等),在同样的资源的情况下可以支撑更多的查询。

目前在SparkSQL中有Filter下推优化,包括两个维度:

生成Filter

SparkSQL会从用户的SQL语句中获取到Filter

  • 直接显示获取

    select * from A where a=1

    生成Filter(a=1) on A

  • 隐式推断

    select * from A, B where A.a = B.b and A.a=1

    推断出Filter(b=1) on B

Filter优化

利用生成的Filter算子可以优化,比如:

  • 将Filt

网友评论

登录后评论
0/500
评论
寒沙牧
+ 关注
所属云栖号: Apache Spark中国技术社区