开发者社区> 萌萌怪兽> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库必知词汇:Hive

简介: Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和JDBC驱动程序以将用户连接到Hive。
+关注继续查看

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。

Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。

Hive提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉MapReduce的用户可以很方便地利用SQL语言查询、汇总和分析数据。而MapReduce开发人员可以把自己写的Mapper和Reducer作为插件来支持Hive做更复杂的数据分析。

Hive SQL与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。它还提供了一系列工具进行数据提取转化加载,用来存储、查询和分析存储在Hadoop中的大规模数据集,并支持UDF(User-Defined Function)、UDAF(User-Defnes AggregateFunction)和USTF(User-Defined Table-Generating Function),也可以实现对Map和Reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。

Hive并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive将用户的Hive SQL语句通过解释器转换为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。Hive并非为联机事务处理而设计,Hive并不提供实时的查询和基于行级的数据更新操作。Hive的最佳使用场合是大数据集的批处理作业,

Hive中包含以下四类数据模型:表(Table)、外部表(External Tablc)、分区(Partition)、桶(Bucket),具体解释如下:

  • Hive中的Table和数据库中的Table在概念上是类似的。在Hive中每一个Table都有一个相应的目录存储数据。
  • 外部表是一个已经存储在HDFS中,并具有一定格式的数据。使用外部表意味着Hive表内的数据不在Hive的数据仓库内,它会到仓库目录以外的位置访问数据。
  • 分区对应于数据库中的分区列的密集索引,但是Hive中分区的组织方式和数据库中的很不相同。在Hive中,表中的一个分区对应于表下的一个目录,所有的分区的数据都存储在对应的目录中。
  • 桶对指定列进行哈希计算,会根据哈希值切分数据,目的是为了并行,每一个桶对应一个文件。

资料来源:
Apache Hive https://hive.apache.org/
万川梅,谢正兰编著.HADOOP应用开发实战祥解(修订版):中国铁道出版社,2014.08
鲍亮,陈荣编著. 深入浅出云计算[M]. 北京:清华大学出版社, 2012.10
陶皖主编.云计算与大数据:西安电子科技大学出版社,2017.01
刘永增, 张晓景, 李先毅. 基于Hadoop/Hive的web日志分析系统的设计[C]// 中国教育和科研计算机网cernet学术年会. 2011.
高金标, 何利力, 邹云阳. 基于分布式存储系统的Hive与Hbase的研究[J]. 工业控制计算机, 2015, v.28(12).

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库必知词汇:数据库连接池
数据库连接(Database Connection Pool)是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。
492 0
数据库必知词汇:RPM
RPM(全称为Red Hat Package Manager,亦称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。最早由Red Hat研制,现在也由开源社区开发。
237 0
数据库必知词汇:LLVM
LLVM命名最早源自于底层虚拟机(Low Level Virtual Machine)的缩写,由于命名带来的混乱,目前LLVM就是该项目的全称。LLVM 核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译器优化、链接优化、在线编译优化、代码生成。
433 0
数据库必知词汇:子查询
子查询(Sub Query)是嵌套在主查询中的SELECT查询语句,即当一个查询是另一个查询的条件时,称之为子查询。子查询嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。
278 0
数据库必知词汇:SQL数据类型
在关系型数据库表中,数据类型较为常见的包括整形(int),单精度(folat),双精度(double),可变长度字符(varchar),固定长度字符(char),长型(long),日期(date)等。对于不同的关系型数据库管理系统而言,往往具有不同的数据类型,这里以MySQL数据库为例,介绍SQL中的数据类型。
205 0
数据库必知词汇:MyISAM
MyISAM是MySQL 5.1版本之前的默认存储引擎。MyISAM基于更老的ISAM (Indexed Sequential Access Method)代码,但有很多有用的扩展。MyISAM不支持事务处理的,而且不支持外键,如果执行大量的Select,Insert操作,MyISAM比较适合。
307 0
数据库必知词汇:消息队列MQ
消息是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。消息队列(Message Queue, MQ)是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。
1006 0
数据库必知词汇:聚合函数
聚合函数(Aggregate Function)是SQL基本函数。聚合函数对一组值执行计算,并返回单个值,也被称为组函数。除COUNT以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。
376 0
数据库必知词汇:Flume
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume具有简单灵活的基于流数据流的体系结构。它具有鲁棒性和容错性,具有可调的可靠性机制和许多故障转移和恢复机制。Flume使用一个简单的可扩展数据模型,允许在线分析应用程序。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
321 0
数据库必知词汇:物化视图
物化视图(Material View)是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照(类似于MSSQL Server中的Snapshot,静态快照)。
1923 0
+关注
萌萌怪兽
云栖社区老同学,软件工程学生党。研究兴趣:软件工程、软件架构设计、软件过程、DevOps以及微服务等。
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
HBase在时间序列数据库中的应用
立即下载
HBase Schema 设计
立即下载
伍翀|HiveSQL如何平迁到FlinkSQL
立即下载