Spark 的集成

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Spark 的集成

Paimon 与 Spark 的集成(二):查询优化

在大数据处理领域,Paimon 和 Spark 的集成为我们提供了强大的数据摄入、流式订阅和实时查询能力。本文将详细介绍Paimon在SparkSQL查询性能上的一系列关键优化点,这些优化使得Paimon x Spark在TpcDS上的性能提升了37+%,与Parquet x Spark基本持平。

动态分区裁剪

动态分区裁剪(Dynamic Partition Pruning,DPP)是SQL优化中的一个常见优化点,它通过谓词下推(Predicate Push Down)来最小化从数据源中读取数据的IO成本,从而减少计算成本。在数仓中,DPP特别有用,例如在事实表和维度表的关联查询中。Paimon通过SparkDataSourceV2的查询框架实现了动态分区裁剪的能力,显著减少了参与join的数据量,提升了查询性能。

Exchange 复用

Exchange是Spark中物理计划中的一个关键操作,对应逻辑计划中的Shuffle。在复杂的SQL中,通过公共表表达式(Common Table Expression,CTE)定义的SQL片段可以被多次使用。Spark提供了Exchange复用的优化,期待的执行计划可以减少不必要的冗余计算,降低IO和网络的开销。

动态调整 Scan 并发任务

在实际执行时,调整并发任务是影响作业运行性能的关键因素之一。Spark提供了参数来调整Join或Agg等算子的并发,但这些无法影响到读取数据源Scan阶段的并发。Paimon提供了基于当前作业的可用core数来动态调整数据源的数据分片的能力,从而提升查询效率。

合并标量子查询

合并标量子查询优化会遍历整个SQL逻辑执行计划,提取出标量子查询(Scalar SubQuery),尝试将多个标量子查询合并起来,使得仅执行一次子查询得到多个标量值。这种优化有效地减少了冗余的计算,提升了查询性能。

Cost-Based 优化

SparkSQL允许使用基于成本的优化(Cost-Based Optimizer,CBO)来提升查询性能,主要用于多路Join的场景。CBO依赖于计算Cost的模型,以及表的表级和列级统计信息的收集。Paimon在元数据中增加了statistics的信息,使得SparkSQL可以利用Paimon的表级/列级信息进行查询优化。

优化效果

通过上述优化,Paimon x Spark的性能得到了显著提升。在没有column级统计信息的情况下,优化后的Paimon和Parquet已经基本持平。开启column级统计信息后,Paimon较Parquet慢约8%,这将是性能优化继续跟进的方向之一。

目录
相关文章
|
4月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
234 2
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
787 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
331 1
|
SQL 分布式计算 大数据
Paimon 与 Spark 的集成(二):查询优化
通过一系列优化,我们将 Paimon x Spark 在 TpcDS 上的性能提高了37+%,已基本和 Parquet x Spark 持平,本文对其中的关键优化点进行了详细介绍。
119166 30
|
存储 缓存 分布式计算
Spark与云存储的集成:S3、Azure Blob Storage
Spark与云存储的集成:S3、Azure Blob Storage
|
消息中间件 分布式计算 Kafka
Spark与Kafka的集成与流数据处理
Spark与Kafka的集成与流数据处理
|
SQL JSON 分布式计算
日志服务(SLS)集成 Spark 流计算实战
日志服务集成 Spark 流式计算:使用Spark Streaming和Structured Streaming对采集到日志服务中的数据进行消费,计算并将结果写回到日志服务。
8552 0
日志服务(SLS)集成 Spark 流计算实战
|
5月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
257 0
|
8月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
344 79
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
220 0