Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图

1、内部表

Hive中默认的表就是内部表,即元数据存在数据库中,数据存在HDFS中

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



顺便补充以下创建内部表的细节:指定列分隔符、从其他表中查询插入

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


内部表被删除后,HDFS会把其移动到垃圾箱中

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



2、分区表

作用:加快查询效率,如按照性别分区

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


如果按照性别进行分区,则可以加快按照性别查询时的查找效率


分区表创建实例:

在mysql中新建一个person表,并插入几条数据

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图

使用Sqoop将mysql数组导入到hive中

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


在hive中查询是否导入成功  select * from person

创建分区表并指定列分隔符 create table partitiontable(sid int,sname string) partitioned by (gender string) row format delimited fields terminated by ',';

向分区表的gender=M分区中插入从person中查询的gender=M的数据:

insert into table partitiontable partition(gender='F') select id,name  from person where gender = 'F';

insert into table partitiontable partition(gender='M') select id,name  from person where gender = 'M';

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


在HDFS中查看分区表的结构和内容

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



3、外部表

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图


Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



3、桶表

将某个属性进行hash,分到一定数量的桶中

Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图



4、视图

概念与数据库中的视图概念基本相同,理解为虚表


Hive学习笔记 3 Hive的数据模型:内部表、分区表、外部表、桶表、视图