赞
踩
目录
数据仓库Hive
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
数据仓库体系结构:
(1)数据源
(2)数据存储和管理
(3)数据服务
(4)数据应用
HDFS作为高可靠性的底层存储,用来存储海量数据
MapReduce对这些海量数据进行处理,实现高性能计算,用HiveQL语句编写的处理逻辑最终均要转化为MapReduce任务来运行
pig是一种数据流语言和运行环境,适合用于Hadoop和MapReduce平台上查询半结构化数据集。常用于ETL过程的一部分,即将外部数据装载到Hadoop集群中,然后转换为用户期待的数据格式
HBase一个面向列的、分布式的、可伸缩的数据库,它可以提供数据的实时访问功能,而Hive只能处理静态数据,主要是BI报表数据,所以HBase与Hive的功能是互补的,它实现了Hive不能提供功能。
Hive在很多方面和传统的关系数据库类似,但是它的底层依赖的是HDFS和MapReduce,所以在很多方面又有别于传统数据库。
对比项目 | Hive | 传统数据库 |
数据存储 | HDFS | 本地文件系统 |
索引 | 支持有限索引 | 支持复杂索引 |
分区 | 支持 | 支持 |
执行引擎 | MapReduce\Tez\Spark | 自身的执行引擎 |
执行延迟 | 高 | 低 |
扩展性 | 好 | 有限 |
数据规模 | 大 | 小 |
(1)数据存储:传统数据库一般依赖于本地文件系统,Hive则依赖于分布式文件系统HDFS。查询语言传统数据库使用的sql语句,hive使用的是类sql的查询语言。
(2)索引:索引也是传统数据库中很重要的特性,传统数据库可以针对多个列构建复杂的索引,大幅提升数据查询性能。但Hive不像传统的关系型数据库那样有键的概念, Hive没有键的概念,它只提供有限的索引功能,使用户可以在某些列上创建索引来加速一些查询操作,Hive中给一个表创建的索引数据被保存在另外的表中。
(3)分区:传统的数据库提供分区功能来改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。Hive也支持分区功能,Hive表组织成分区的形式,根据分区列的值对表进行粗略的划分,使用分区可以加快数据的查询速度。
(4)执行引擎:传统数据库依赖自身引擎,Hive则依赖MapReduce\Tez\Spark。
(5)执行延迟:因为Hive构建于HDFS与MapReduce上,所以对比传统数据库来说Hive的延迟比较高,传统的SQL语句的延迟少于一秒,而HiveQL语句的延迟会达到分钟级。
(6)扩展性:传统关系数据库很难横向扩展,纵向扩展的空间也很有限。相反Hive的开发环境是基于集群的,所以具有较好的可扩展性。
(7)数据规模:传统关系数据库存储有限规模的数据。Hive支持大规模数据存储。
Hive和Pig主要用于报表中心,Hive用于报表分析,Pig用于报表中数据的转换工作。Hbase主要用于实时访问数据,因此用于在线业务,Mahout提供可扩展的机器学习领域经典算法实现,便于开发商务智能应用程序(BI)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。