首页 > TAG信息列表 > AQE
「Spark 从精通到重新入门(一)」Spark 中不可不知的动态优化
前言 Apache Spark 自 2010 年面世,到现在已经发展为大数据批计算的首选引擎。而在 2020 年 6 月份发布的Spark 3.0 版本也是 Spark 有史以来最大的 Release,其中将近一半的 issue 都属于 SparkSQL。这也迎合我们现在的主要场景(90% 是 SQL),同时也是优化痛点和主要功能点。我们大数据开发之Spark SQL执行性能的提升
Catalyst是Spark SQL核心优化器,早期主要基于规则的优化器RBO,后期又引入基于代价进行优化的CBO。但是在这些版本中,Spark SQL执行计划一旦确定就不会改变。由于缺乏或者不准确的数据统计信息(如行数、不同值的数量、NULL值、最大/最小值等)和对成本的错误估大数据培训算导致生成的初始Spark3自适应查询计划(Adaptive Query Execution,AQE)
动态合并shuffle分区(Dynamically coalescing shuffle partitions) 动态调整join策略(Dynamically switching join strategies) 动态优化数据倾斜join(Dynamically optimizing skew joins) 参数:spark.sql.adaptive.enabled 默认关闭,开启此参数后上述三种策略才会执行 1、动态优化Spark 3.0如何提高SQL工作负载的性能
在几乎所有处理复杂数据的部门中,Spark很快已成为跨数据和分析生命周期的团队的事实上的分布式计算框架。 新的Adaptive Query Execution框架(AQE)是Spark 3.0最令人期待的功能之一,它可以解决困扰许多Spark SQL工作负载的问题。英特尔和百度混合团队在2018年初的博客中记录了这些提效 7 倍,Apache Spark 自适应查询优化在网易的深度实践及改进
本文基于 Apahce Spark 3.1.1 版本,讲述 AQE 自适应查询优化的原理,以及网易数帆在 AQE 实践中遇到的痛点和做出的思考。 前言 自适应查询优化(Adaptive Query Execution, AQE) 是 Spark 3.0 版本引入的重大特性之一,可以在运行时动态的优化用户的 SQL 执行计划,很大程度上提高了 Sp