Hive学习笔记(一)

Hive介绍

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

数据仓库与数据库区别

数据仓库(Data Warehouse)是一个面向主题的(Subject),集成的(Integrate)相对稳定的(Non-Volatile),反映历史变换(Time Variant)的数据集合,用于支持管理决策。

数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。

数据仓库与数据库主要区别在于:

1)数据库是面向事务的设计,数据仓库是面向主题设计的。

2) 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。

3) 数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余。

4) 数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

Hive与关系型数据库比较

Hive适用场景

Hive的设计目标是,通过类SQL的语言实现在大规模数据集上数据查询等操作,而不需要开发相应的MapReduce程序,所以Hive特别适合数据仓库的统计分析。Hive最初由Facebook开发实现,Facebook使用Hive来分析日益增长的日志数据。后来Facebook将Hive作为开源项目贡献给Apache基金会,如今Hive已经是Apache下的顶级开源项目,而且在很多大型企业得大了广泛使用,包括淘宝、腾讯等。

Hive并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB的数据集上执行查询一般有分钟级的时间延迟。因此Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111B0KKE700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券