Maryann Xue是Databricks的软件工程师,Apache Calcite和Apache Phoenix的提交者和PMC成员。在此之前,她曾在英特尔公司从事过许多大数据和编译器项目。
多年来,为了生成高质量的查询执行计划,Spark SQL在改进查询优化器和计划器方面进行了广泛和持续的努力。最大的改进之一是基于成本的优化框架,它收集和利用各种数据统计数据(例如,行数、不同值的数量、NULL值、最大/最小值等),以帮助Spark在选择最优查询计划时做出更好的决策。这些基于成本的优化示例包括选择正确的连接类型(广播哈希-连接vs.排序-合并-连接),在哈希连接中选择正确的构建端,或者在多路连接中调整连接顺序。但是,数据统计可能会过时,基数估计可能不准确,这可能导致不太理想的查询计划。自适应查询执行(Adaptive Query Execution)是Spark 3.0中的新功能,现在可以根据查询执行过程中收集的运行时统计数据重新优化和调整查询计划,从而解决这些问题。本演讲将介绍自适应查询执行框架,以及它所采用的一些优化,以解决业界在使用Spark SQL时面临的一些主要性能挑战。我们将通过查询示例说明这些统计数据引导的优化如何加速执行。最后,我们将分享自适应查询执行在TPC-DS基准测试中的显著性能改进。
Spark SQL使Spark能够使用分析数据库技术执行高效和容错的关系查询处理。使用生成的Java代码将关系查询编译为可执行的物理计划,该计划由rdd上的转换和操作组成。代码被编译为Java字节码,在运行时由JVM执行,并在运行时由JIT优化为本机机器码。本次演讲将深入探讨Spark SQL执行引擎。讲座内容包括流水线执行、全阶段代码生成、UDF执行、内存管理、向量化阅读器、基于沿袭的RDD转换和操作。
Spark SQL使Spark能够使用分析数据库技术执行高效和容错的关系查询处理。使用生成的Java代码将关系查询编译为可执行的物理计划,该计划由rdd上的转换和操作组成。代码被编译为Java字节码,在运行时由JVM执行,并在运行时由JIT优化为本机机器码。本次演讲将深入探讨Spark SQL执行引擎。讲座内容包括流水线执行、全阶段代码生成、UDF执行、内存管理、向量化阅读器、基于沿袭的RDD转换和操作。