(一)Hive简介
1、Hive基本概念
Hive基于hadoop的一个数据仓库工具:
- hive本身不提供数据存储功能,使用HDFS做数据存储;
- hive也是分布式计算框架,hive的核心工作就是把SQL语句翻译成MR程序;
- hive不提供资源调度,也是默认由Hadoop当中yarn集群来调度;
- 可以将结构的数据映射为一张数据库表,并提供HQL(Hive SQL)查询功能。
(二)数据仓库与数据库的区别
- 数据库只存在当前值(近几年),数据仓库存放历史值(5-10年都可以);
- 数据库内数据是动态变化的,只要有业务发生,数据就会被更新,而数据仓库则是静态的历史数据,只能定期添加、刷新;
- 数据库中的数据结构比较复杂,有各种结构以适合业务处理系统的需要,而数据仓库中的数据结构则相对简单;
- 数据库中数据访问频率较高,但访问量较少,而数据仓库的访问频率低(只要做查询)但访问量却很高;
- 数据库中数据的目标是面向业务人员的,为业务处理人员提供信息处理的支持,而数据仓库则是面向高层管理人员的,为其提供决策支持;
- 数据库在访问数据时要求响应速度快,其响应时间一般在几秒内,而数据仓库的响应时间则可长达数几小时(因为底层是mapreduce,所以比较慢)。
(三)Hive数据类型
1、基本数据类型
2、复杂数据类型
(四)基本语句
1、创建数据库
【语法】
CREATE
【例子】
CREATE
2、使用数据库
【语法】
USE
【示例】
(1)查看数据库:SHOW DATABASES;
(2)使用数据库:USE myhive;
3、删除数据库
【语法】
DROP
ASCADE强制删除数据库
4、创建数据表
(1)直接建表法
CREATE
(2)查询建表法
CREATE
(3)like建表法 只会把表结构复制过去,但是不会复制表内的数据
CREATE
5、修改表
(1)修改表名
ALTER
(2)修改列名
ALTER
(3)增加列
ALTER
6、删除表
DROP
7、导入数据
LOAD
(1)从本地导入到hive表
LOAD
(2)从hdfs导入到hive表
LOAD
8、导出数据
(1)保存到本地
INSERT
(2)保存到hdfs
INSERT
(五)管理表(内部表)、外部表、分区表
(1)内部表:内部表创建的时候,在hdfs上面也会创建一个目录,删除的时候会把hdfs上面的数据也一并删除,故不常用。
(2)外部表:外部表创建的时候,在hdfs上面也会创建一个目录,删除的时候只会删除表的元数据和结构,而不会删除hdfs上面的数据。
CREATE
(3)分区表:hive中没有索引,导致查询速度很慢,如果不设置分区,则每次查询会全表扫描。
CRETAE
(4)查看分区
show