HIVE的定义,HIVE是什么?

一、我们看下官网(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的比较:

比较项SQLHiveQL
ANSI SQL支持不完全支持
更新UPDATE\INSERT\DELETEinsert OVERWRITE\INTO TABLE
事务支持不支持
模式写模式读模式
数据保存块设备、本地文件系统HDFS
延时
多表插入不支持支持
子查询完全支持只能用在From子句中
视图UpdatableRead-only
可扩展性
数据规模
................

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值