10.3969/j.issn.1000-386x.2022.08.006
Spark查询引擎中Join操作的优化
Spark是基于Map/Reduce计算模型进行大规模数据处理的分布式系统,每个任务都会被分为很多Map处理和Reduce处理在各个节点上并行执行.Shuffle操作是用于连接Map处理和Reduce处理的桥梁.在对两个大表进行Join操作的过程中,如果两表Join列不完全匹配,Spark中现有的Join实现算法会对大量数据进行shuffle操作,严重影响执行效率.提出一种基于Semi Join思想的Join实现算法——Semi Sort Merge Join,通过对左表Join列数据所构建的HashMap对右表数据进行过滤,可以有效减少Shuffle操作过程中所需传输的数据量.算法分析和实验结果表明,对于Join列数据不完全匹配的大表间Join操作,该算法能有效减少Shuffle操作的开销,右表与左表匹配数据量越少,算法优化的效果越明显.
Spark、Join、Shuffle、Semi Join
39
TP3(计算技术、计算机技术)
2022-09-15(万方平台首次上网日期,不代表论文的发表时间)
共7页
44-50