第六章:分布式数据仓库Hive
1.Hive的由来:(了解一个技术或者名词应该知道它产生的初衷)
- 为了便于熟悉SQL的传统数据库的开发人员使用Hadoop系统进行数据查询分析,开源社区基于Hadoop构建了一个可供进行数据查询分析的数据仓库Hive。Hive可直接用类似SQL的语言描述数据处理逻辑,避免开发人员在开发大数据查询分析处理程序时编写复杂的基于Java的MapReduece程序。Hive提供了HiveQL查询语言的编程接口,提供数据仓库所需要的数据抽取转换,存储管理和查询分析功能。
2.在Hive中使用了4个主要的数据模型:表,外部表,分区和桶。
3.Hive运行过程中,其元数据可能会不断被读取,更新和修改,因此这些元数据不宜存放再Hadoop的HDFS中,否则会降低元数据的访问效率,进一步导致Hive的整体性能。目前,Hive使用一个关系数据库来存储其元数据,Hive系统安装时自带了一个内置的小规模内存数据库Derby,但是Hive也可以让用户安装和使用其他存储规模更大的专业数据库,如MySQL。
4.Hive可通过三种模式连接到数据库:单用户模式,多用户模式,远程服务器模式。
5.Hive的查询语言—HiveQL
Hive主要支持以下几类操作:
(1).DDL:数据定义语句,包括CREATE,ALTER,SHOW,DESCRIBE,DROP等;
(2).DML:数据操作语句,包括LOAD DATA,INSERT。Hive设计中没有UPDATE,因为Hive中有时间戳。
(3).QUERY:数据查询语句,主要是SELECT语句。