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 适合实时性要求或者速度要求较高的场所。

相关推荐
满昕欢喜7 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
JAVA学习通10 小时前
Mybatis--动态SQL
sql·tomcat·mybatis
涤生大数据12 小时前
Apache Spark 4.0:将大数据分析提升到新的水平
数据分析·spark·apache·数据开发
m0_6239556615 小时前
Oracle使用SQL一次性向表中插入多行数据
数据库·sql·oracle
xufwind16 小时前
spark standlone 集群离线安装
大数据·分布式·spark
jnrjian17 小时前
Oracle RAC环境 加错数据文件 的修复 归档非归档都没问题
sql·oracle
大数据CLUB19 小时前
基于spark的奥运会奖牌变化数据分析
大数据·hadoop·数据分析·spark
亚马逊云开发者1 天前
全景解读亚马逊云科技的 GenBI 解决方案:三大路径助力企业智能决策升级
sql·llm
双力臂4041 天前
MyBatis动态SQL进阶:复杂查询与性能优化实战
java·sql·性能优化·mybatis
A__tao1 天前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql