HIVE的理解,HIVE是什么?

原创
小哥 3年前 (2022-11-02) 阅读数 43 #大杂烩

1.我们来看看官方网站(https://cwiki.apache.org/confluence/display/Hive/Home)的定义

The Apache Hive™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax. 

Built on top of Apache Hadoop™, Hive provides the following features:

1、Tools to enable easy access to data via SQL, thus enabling data warehousing tasks such as extract/transform/load (ETL), reporting, and data analysis.
2、A mechanism to impose structure on a variety of data formats
3、Access to files stored either directly in Apache HDFS™ or in other data storage systems such as Apache HBase™ 
4、Query execution via Apache Tez™, Apache Spark™, or MapReduce
5、Procedural language with HPL-SQL
6、Sub-second query retrieval via Hive LLAP, Apache YARN and Apache Slider.

翻译结果为:

Apache Hive™数据仓库软件使您可以轻松地读取、写入和管理存储在分布式存储中的大型数据集并使用它们。SQL要查询的语法。
Hive 构建于Apache Hadoop™上面,提供了以下功能:
1,使用SQL用于轻松访问数据的工具,以支持数据仓库任务,如提取/转换/加载(ETL)、报告和数据分析。
2,一种对各种数据格式施加结构的机制。
3,访问权限直接存储在中。Apache HDFS ™或其他数据存储系统(如Apache HBase ™文件输入) 。
4、通过Apache Tez ™,Apache Spark ™或 MapReduce执行查询。
5、使用HPL-SQL过程语言。
6、通过Hive LLAP,Apache YARN和Apache Slider次秒级查询检索。

从上面的定义中,我们可以得到一个初步的理解:

Hive是一种建立在Hadoop文件系统上的数据仓库体系结构和存储在中。HDFS数据在分析和管理中,Hive是通过类似的SQL查询语言(称为HiveSQL,简称为HQL)分析和管理数据,以便熟悉SQL用户可以直接利用Hive以查询数据。同时,这种语言也允许熟悉性 MapReduce 开发人员开发定制mappers和reducers要处理内置的mappers和reducers无法完成的复杂分析工作。Hive可以允许用户编写自己定义的函数UDF以查询数据。Hive中有3种UDF:User Defined Functions(UDF)用户定义的函数,User Defined Aggregation Functions(UDAF)用户定义的聚合,User Defined Table Generating Functions(UDTF用户定义的表函数。

二、Hive传统关系数据库之间的区别:

Hive将外部任务分解为一个。MapReduce启动时的可执行计划MapReduce这是一个高延迟的事情,而且每次提交和执行任务都需要花费大量时间,这是决定的。Hive只能处理一些高延迟应用程序(如果您想要处理低延迟应用程序,请考虑Hbase)。
在传统的关系数据库中,表的模式是在加载数据时强制确定的。如果在加载时发现数据不符合模式,则拒绝加载该数据。和Hive在加载过程中不执行数据验证,它只是数据的副本或移动到表的相应目录。在这方面,传统数据库比数据加载更好。Hive慢的。但是,由于传统数据库可以在数据加载过程中执行一些处理,如对列进行索引,因此可以提高数据的查询性能。在这件事上Hive不行。
我们都知道,数据库事务、索引和更新是传统数据库的重要功能。但Hive目前不支持事务;不能修改表数据(不能更新、删除、插入;只能通过文件追加和重新导入数据);不能对列进行索引(Hive支持创建索引,但无法改进。Hive查询速度。如果你想改进Hive查询速度快,需要学习。Hive分区、存储桶应用)。
下表列出了RMDB和Hive的比较:

比较项

SQL

HiveQL

ANSI SQL

支持

不完全支持

更新

UPDATE\INSERT\DELETE

insert OVERWRITE\INTO TABLE

事务

支持

不支持

模式

写模式

读模式

数据保存

数据块设备、本地文件系统

HDFS

延时

多表插入

不支持

支持

子查询

完全支持

只能用在From子句中

视图

Updatable

Read-only

可扩展性

数据规模

....

......

......

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门