上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Hive简述

guduadmin11天前

Hive的产生背景

数据库擅长事务性的工作,但不擅长分析型的工作,所以应要求就产生了数据仓库。

数据仓库相当于集成化数据管理的平台,从多个数据源抽取有价值的数据,在仓库内转换和流动,并且提供给BI等分析工具

简而言之,数据仓库是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合,用于支持管理的决策

而传统的数据仓库是基于关系数据库的,无法满足快速增长的海量数据存储的需求,只能支持结构化数据的存储,没有办法有效处理不同类型的非结构化数据,比如日志,也没有办法水平扩展,导致计算和处理的能力不足。

而Hive就是一个构建于Hadoop顶层的数据仓库工具,由Facebook在2008年将该项目贡献于Apache,在一定程度上可以看作是用户的编程接口,本身并不存储和处理数据。

那么Hive中的数据要用什么存储和处理呢?那就是HDFS和MapReduce了。HDFS,即分布式文件系统,MapReduce,即分布式并行计算模型。

Hive中有使用简单的类SQL查询语言,也就是HiveQL,用户可以通过编写的HiveQL语句运行MapReduce任务。Hive也支持类似SQL的接口,容易进行移植。简单地说,Hive是一个可以提供有效、合理、直观组织和使用数据的分析工具。

为什么说Hive非常适合数据仓库呢?

首先,Hive采用批处理方式来处理海量的数据,

其次,Hive提供适合数据仓库操作的工具

(提示:1、Pig可以作为Hive的替代工具  2、提供数据的实时访问的是HBase,Hive不能提供这个功能)

 

Hive对比传统数据库有什么区别呢?

1、在数据的插入处理方面,Hive常见操作时全表扫描,所以单条插入对Hive是不实用的

2、在数据的更新方面,Hive也不支持数据的更新。Hive是一个数据仓库工具,而数据仓库中存放的是静态的数据,所以Hive不支持对数据的更新。

3、Hive在hive0.7后可支持索引,但是Hive不像传统的关系型数据库那样有键,它只提供有限的索引功能,Hive中给一个表创建的索引数据被保存在另外的图中。

4、Hive也支持分区功能,根据分区列的值对表进行粗略的划分,使用分区可以加快数据的查询速度。

5、Hive的执行延迟比较高,因为构建于HDFS和MapReduce上

6、Hive的开发环境是基于集群的,所以有比较好的扩展性

Hive的数据单元

1、元数据(MetaData)是指数据的各项属性的信息,如数据类型,结构,表视图的信息等

2、数据库,Hive的数据库相当于一个命名空间

3、表(外部表、内部表),

内部表就是通常的表,也叫管理表,内部表被存储在数据仓库的目录中,当删除内部表时,表数据和元数据将被一同删掉

外部表就是创建时数据存储于指定的HDFS目录中,也可以存储于数据仓库中,还可以与指定的HDFS目录中的数据相关联。外部表被删除时,只有元数据被删除,实际的数据不会被删除。

4、分区,Hive中的一个表可以有一个或者多个的分区,这些分区决定了数据的存储方式,使得查询操作只查询扫描相关性高的那部分数据,从而大大提高Hive的工作效率。

5、桶,每个分区会根据表的某列数据的哈希值划分为若干个桶,每个桶对应分区下的一个数据文件。

(注意:对表进行分区和分桶不是必须的,但是这样可以减少对不必要数据的访问,从而提高查询的速度)

Hive的部署和应用

Hive简述,第1张

构建于Hadoop上的数据仓库,除了依赖于Hadoop的基本组件HDFS和MapReduce外,还结合使用的Hive、Pig、HBase和Mahout

Hive和Pig主要时用在报表中心上,Hive用于分析,Pig则用于报表中的数据转换。

HBase主要用于在线的业务,因为HDFS缺乏随机读写的操作,而HBase支持实时数据的访问。

Mahout常常用于BI(商务智能),提供了一些可扩展的机器学习领域的经典算法,旨在帮助开发人员更加方便快捷地创建智能应用程序。

Facebook是怎么部署Hive的呢?或者说,Facebook是怎么把数据仓库构建在Hadoop集群上的呢?

步骤如下:

1、Web服务器及内部的服务产生日志

2、Scribe服务器把成百上千个日志数据集存放在几个/几十个Filers(网络文件服务器)上

3、网络文件服务器上的大部分日志文件被复制存放在HDFS系统中。并且维度数据也会每天从内部的MySQL数据库上复制到这个HDFS系统中

4、Hive为HDFS收集的数据创建一个数据仓库,用户可以通过编写HiveQL语言创建各种概要学习和报表以及数据执行的历史分析,同时内部的MyQL数据库也可以从中获得处理后的数据 

5、把需要实时联机访问的数据存放在Oracle RAC上

 

网友评论

搜索
最新文章
热门文章
热门标签