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 适合实时性要求或者速度要求较高的场所。
Hive SQL和Spark SQL的区别?
lucky_syq2024-12-25 12:26
相关推荐
GEEK零零七20 分钟前
Leetcode 1070. 产品销售分析 III御控工业物联网2 小时前
御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换Code季风4 小时前
SQL关键字快速入门:CASE 实现条件逻辑kk在加油5 小时前
Mysql锁机制与优化实践以及MVCC底层原理剖析满昕欢喜14 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20JAVA学习通17 小时前
Mybatis--动态SQL涤生大数据19 小时前
Apache Spark 4.0:将大数据分析提升到新的水平m0_623955661 天前
Oracle使用SQL一次性向表中插入多行数据xufwind1 天前
spark standlone 集群离线安装jnrjian1 天前
Oracle RAC环境 加错数据文件 的修复 归档非归档都没问题