千家信息网

SparkSQL指的是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"SparkSQL指的是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SparkSQL指的是什么"这篇文章吧。一、 Spark
千家信息网最后更新 2026年11月02日SparkSQL指的是什么

这篇文章主要为大家展示了"SparkSQL指的是什么",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SparkSQL指的是什么"这篇文章吧。

一、 Spark SQL介绍


Spark SQL是Apache Spark's的一个模块,用来处理结构化数据,1.0后产生;SQL语句主要体现在关系型数据库上,大数据中基于Hadoop的SQL有Hive(SQL on Hadoop)但是MapReduce计算过程中大量的磁盘落地过程消耗了大量I/O,降低运行效率,简单说就是稳定性高,计算慢,离线批处理的框架,因此其他的SQL on Hadoop工具产生。

SQL on Hadoop

    • Hive -- 把HQL语句转换MapReduce作业 提交到Yarn执行(元数据重要性)

    • Impala -- 开源的交互式SQL查询引擎,基于内存处理

    • Presto -- 分布式SQL查询引擎

    • Shark -- SQL语句翻译Spark作业,Hive跑在Spark之上,依赖Hive与Hive兼容性差

    • Drill -- 查询引擎包括SQL/FILE/HDFS/S3

    • Phoenix -- 基于Hbase上的SQL引擎



Hive on SQL是社区发展另外一个路线,属于Hive发展计划,把Spark作为Hive的执行引擎;之前我们说的HIve作业跑在Hadoop的MapReduce上的;现在Hive不受限于一个引擎,可以采用MapReduce、Tez、Spark等引擎。

二、 Spark SQL特性

    • 集成性-SQL查询与应用程序对接

    • 统一的数据访问-连接各种数据源(Hive, Avro, Parquet, ORC, JSON, and JDBC)

    • 与Hive的集成性,不需要Hive,使用Hive存在Metastores即可或者使用Hive-site文件

    • 通过JDBC和ODBC连接,start-thriftserver底层走的也是Thrift协议(Hive_server2底层基于Thrift协议,)

    • Spark SQL不仅仅是SQL,远超出SQL

三、 Spark SQL优势

A:内存列存储(In-Memory Columnar Storage)

Spark SQL的表数据在内存中的存储采用是内存列式存储,而不是原生态JVM对象存储方式。

Spark SQL列式存储将数据类型相同列采用原生数组来存储,将Hive支持的复杂数据类型(如array、map等)先序化后并接成一个字节数组来存储。这样,每个列创建一个JVM对象,从而导致可以快速的GC和紧凑的数据存储;额外的,还可以使用低廉CPU开销的高效压缩方法(如字典编码、行长度编码等压缩方法)降低内存开销;更有趣的是,对于分析查询中频繁使用的聚合特定列,性能会得到很大的提高,原因就是这些列的数据放在一起,更容易读入内存进行计算

B:字节码生成技术(bytecode generation,即CG)

数据库查询中有一个昂贵的操作是查询语句中的表达式,主要是由于JVM的内存模型引起的。比如如下一个查询:

中有一个昂在这个查询里,如果采用通用的SQL语法途径去处理,会先生成一个表达式树。

select a+b from table

在物理处理这个表达式树的时候,将会如图所示的7个步骤

1. 调用虚函数Add.eval(),需要确认Add两边的数据类型

2. 调用虚函数a.eval(),需要确认a的数据类型

3. 确定a的数据类型是Int,装箱

4. 调用虚函数b.eval(),需要确认b的数据类型

5. 确定b的数据类型是Int,装箱

6. 调用Int类型的Add

7. 返回装箱后的计算结果

C:Scala代码优化

...............

四、 Spark SQL运行架构

Catalyst就SparkSQL核心部分,性能的优劣影响整体的性能,由于发展时间短,虚线部分是以后版本要实现功能,实现部分是已经实现功能。
Unresolved Logical Plan:未解析的逻辑执行计划

Schema Catalog:元数据管理套用Unresolved Logical Plan生成Logical Plan

Logical Plan:生成逻辑执行计划

Optimized Logical Plan:对生生成的Logical Plan进行优化,生成物理逻计划
Physical Plans:物理逻辑计划,可能是多个,根据Cost Model生成最佳的物理逻辑化

以上是"SparkSQL指的是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 查询 类型 存储 内存 引擎 生成 物理 语句 逻辑 处理 内容 函数 性能 篇文章 表达式 部分 作业 发展 装箱 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 科技赋能下的互联网金融 狮子座互联网科技 互联网与新科技 互联网科技网站 深圳卡尔迅互联网科技有限公司怎么样 顺网科技2021年互联网排名 太原新华互联网科技学校怎么样 现代科技和互联网有关系吗 以后互联网后是啥科技 厦门比较好的科技互联网公司 互联网科技公司实习生 上海钢联属于互联网科技股吗 梅州GM互联网络科技有限公司 新氧科技和美国互联网有关系吗 长沙渺峰互联网科技有限公司 互联网科技对化妆品行业 互联网科技创业有什么好项目 知域互联网科技有限公司官网 咖啡 互联网金融 科技 互联网 新科技 玖二柒互联网科技公司待遇 江苏南京365互联网科技 互联网科技创新服务 互联网媒体平台算高科技产业 群盈汇互联网科技有限公司 福州德业互联网科技 互联网科技创新方面的资料
0