当前位置:   article > 正文

Spark SQL的前世今生_spark sql怎么来的

spark sql怎么来的

1. Spark SQL简介

1.1 Spark SQL 起源

要说这个的起源,我们要先供hive讲起。hive并不是另一个SQL,它只是SQL-on-Hadoop,执行的是在Hadoop上实现用 类SQL的语法 对 SQL 的快速查询。
在这里插入图片描述
而在Spark 开始兴起之后,就开始转向在Spark上使用Hive,于是开发出了Shark==Hive on Spark.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
于是,最后官方停止了Shark项目,转而开发Spark SQL。
因此,产生了两个直线分支:
在这里插入图片描述
也就是说,Spark SQL是一个全新的,但是兼容Hive的。

1.2 Spark SQL缘起

在这里插入图片描述
在这里插入图片描述

2. Spark SQL 架构

在这里插入图片描述
首先拿到sql后解析一批未被解决的逻辑计划,再经过分析得到分析后的逻辑计划,再经过一批优化规则转换成一批最佳优化的逻辑计划,再经过SparkPlanner的策略转化成一批物理计划,随后经过消费模型转换成一个个的Spark任务执行。

下图分层说明了Spark SQL的体系结构

Spark SQL的体系结构
此架构包含三个层,即Language API,Schema RDD和数据源。

2.1 语言API

Spark与不同的语言和Spark SQL兼容。 它也是由这些语言支持的API(python,scala,java,HiveQL)。

2.2 模式RDD

Spark Core是使用称为RDD的特殊数据结构设计的。 通常,Spark SQL适用于模式,表和记录。 因此,我们可以使用Schema RDD作为临时表。 我们可以将此Schema RDD称为数据帧。

2.3 数据源

通常spark-core的数据源是文本文件,Avro文件等。但是,Spark SQL的数据源不同。 这些是Parquet文件,JSON文档,HIVE表和Cassandra数据库。

我们将在随后的章节中更多地讨论这些。

3. Spark SQL 支持的数据格式和编程语言

在这里插入图片描述

4. Spark SQL 功能特性

以下是Spark SQL的功能

4.1 集成

无缝地将SQL查询与Spark程序混合。 Spark SQL允许您将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python,Scala和Java中集成了API。这种紧密的集成使得可以轻松地运行SQL查询以及复杂的分析算法。

4.2 统一数据访问

加载和查询来自各种来源的数据。 Schema-RDDs提供了一个有效处理结构化数据的单一接口,包括Apache Hive表,镶木地板文件和JSON文件。

4.3 Hive兼容性

在现有仓库上运行未修改的Hive查询。 Spark SQL重用了Hive前端和MetaStore,为您提供与现有Hive数据,查询和UDF的完全兼容性。只需将其与Hive一起安装即可。

4.4 标准连接

通过JDBC或ODBC连接。 Spark SQL包括具有行业标准JDBC和ODBC连接的服务器模式。

4.5 可扩展性

对于交互式查询和长查询使用相同的引擎。 Spark SQL利用RDD模型来支持中查询容错,使其能够扩展到大型作业。不要担心为历史数据使用不同的引擎。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/389378
推荐阅读
相关标签
  

闽ICP备14008679号