学科分类
目录
Hadoop技术栈

什么是Hive

Hive是建立在Hadoop文件系统上的数据仓库,它提供了一系列工具,能够对存储在HDFS中的数据进行数据提取、转换和加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的工具。

Hive定义了简单的类SQL查询语言,称为HQL,它可以将结构化的数据文件映射为一张数据表,允许熟悉 SQL 的用户查询数据,也允许熟悉 MapReduce 的开发者开发自定义的 mapper和 reducer来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作,相对于Java代码编写的MapReduce来说,Hive的优势更加明显。

由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。接下来,我们以传统数据库MySQL和Hive的对比为例,通过他们的对比来帮助大家理解Hive的特性,具体如表1所示。

表1 Hive与传统数据库对比

对比项 Hive MySQL
查询语言 Hive QL SQL
数据存储位置 HDFS 块设备、本地文件系统
数据格式 用户定义 系统决定
数据更新 不支持 支持
事务 不支持 支持
执行延迟
可扩展性
数据规模
多表插入 支持 不支持
点击此处
隐藏目录