HIVE的理解,HIVE是什么?
原创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
可扩展性
低
高
数据规模
小
大
....
......
......
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除