Hive SQL和Spark SQL的区别?

1 Hive
Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL) ,这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。 Hive 定义了简单的类SQL 查询语言,称为 HQL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
2 Spark SQL
Spark SQL 主要用于结构化数据处理和对 Spark 数据执行类 SQL 的查询。通过 Spark SQL ,可以针对不同格式的数据执行ETL 操作(如 JSON , Parquet ,数据库)然后完成特定的查询操作。一般来说, Spark 每支持一种新的应用开发,都会引入一个新的Context 及相应的 RDD ,对于 SQL 这一特性来说,引入的就是SQLContext和 SchemaRDD 。
注意:在 Spark1.3 之后, SchemaRDD 已经更名为 DataFrame ,但它本质就类似一个 RDD ,因为可以将DataFrame无缝的转换成一个 RDD 。
3 、比对
Hive 是基于 Hadoop 的一个数据仓库工具,同时也是查询引擎,基于 Hadoop 做数据清洗( ETL )、报表、数据分析等。但是,对于实时插入、更新、删除数据,还要求强一致性和毫秒级响应,这个就不是Hive的长处,因为MapReduce 处理数据是一个个阶段进行的,每个阶段都要落盘,不能多个 map 串联使用。
对于 Spark ,有 RDD ,可以把 map 过程串起来,中间过程存在内存中,再做一些优化,官方给出的答案是比Hadoop 处理速度快乐 10-100 倍。
Hive 适合处理离线非实时数据、数据仓库存储。
Spark SQL 适合实时性要求或者速度要求较高的场所。

相关推荐
e***0966 小时前
SQL 中UPDATE 和 DELETE 语句的深入理解与应用
数据库·sql
w***4247 小时前
SQL-Server链接服务器访问Oracle数据
服务器·sql·oracle
q***09808 小时前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
q***64978 小时前
VS与SQL Sever(C语言操作数据库)
c语言·数据库·sql
BG8EQB9 小时前
开发者的存储救赎计划:从SQL到云原生的架构演进
sql·云原生·架构
百***757418 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
i***395818 小时前
SQL 注入详解:原理、危害与防范措施
数据库·sql·oracle
舒一笑1 天前
信息的建筑学:MyBatis Log Panda 如何重构开发者的认知地图
后端·sql·intellij idea
core5121 天前
不借助框架实现Text2SQL
sql·mysql·ai·大模型·qwen·text2sql
bigdata-rookie1 天前
Spark 部署模式
大数据·分布式·spark