Spark环境下SQL优化的方法

2021-08-04 01:58:26杨彦彬干祯辉
数字通信世界 2021年7期
关键词:优化方法

杨彦彬,干祯辉

(1.中通服软件科技有限公司,上海 200000;2.杭州东方通信软件技术有限公司,浙江 杭州 310013)

0 引言

随着大数据时代到来,关系型数据结构逐渐被NOSQL所替代。但是,由于传统SQL语法方便易学且普及率高,因此直接废弃难度很大,最终以Hive SQL及Spark SQL为代表的大数据组件也转向支持传统SQL。这些组件提供了SQL解析为分布式运算引擎的功能,但在如何提升执行效率方面则没有更多论述。本文以此为切入点,一方面讨论了SQL迁移后出现的问题原因,另一方面给出了简单实用的解决技巧,以利于在未来生产实践中推广。

1 大数据处理框架Spark概述

Spark是一个日常数据处理框架,它在接受job的时候,内部会对其进行细致划分,分为逻辑执行计划和物理执行。逻辑执行计划是将一个RDD切分成不同的Stage,并产生一系列依赖关系,也就是Task之间窄依赖和宽依赖,其中宽依赖部分形成了Shuffle[1]。大部分Shuffle处后续会切分成多个Stage提交节点后执行Action操作,称之为物理执行。

Spark的Task执行可以分为两种计算形式:流水线性计算和非流水线性计算,前者直接计算完成,有效减少内存空间,典型的是filter()或者map()等操作。而后者则需要借助内存空间完成,典型的是Groupbykey()或者Reducebykey()等操作。因此流水线性计算速度要快于非流水线性计算。图1是Spark整体转换流程[2]。

图1 Spark整体转换流程

2 业务数据迁移带来的问题

Hive SQL及Spark SQL这些组件出现,实现了将收集后的海量数据按照原有业务模型进行计算的可能,但是这个过程中也带来了很多问题,最典型的无疑是数据倾斜。……

登录APP查看全文

猜你喜欢
优化方法
超限高层建筑结构设计与优化思考
房地产导刊(2022年5期)2022-06-01 06:20:14
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
由“形”启“数”优化运算——以2021年解析几何高考题为例
学习方法
用对方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
赚钱方法
捕鱼