Hive学习笔记(二)

Hive内部表跟外部表之间的区别

创建外部表

先删除上面创建的表,指定location

此时在hdfs根目录下就有一个hivedata文件夹

上传文本数据到hivedata目录下

查询表中数据

删除上面那个外部表

hivedata目录下的数据还存在

所以,内部表在删除表的同时删除以表名为目录的目录以及数据都被删除了,外部表则不删除目录下的数据,元数据被删除了,但数据还存在

因此,企业一般使用外部表,因为删除表,数据还在hdfs目录下

Hive分区表的使用

创建分区表

查看表结构

创建一些数据

加载数据,要指定分区名

查询数据

再造一个数据,vi  t_part1

hive再load一下,load到不同分区

t_part 应该是 t_part1

再次查询这个表

指明分区查询

这样查询只需要查询指定分区的文件,大大提高了查询的效率

Hive指定表的存储格式 stored as

创建表

没有指定 stored as,默认就是textfile

造一个数据,然后再加载

重新创建一个表

加载数据

发现失败了,文件格式有问题,不能通过load的形式去加载数据了

需要从另一个表查询数据然后overwrite到这个表

查看hdfs,t_3使用的是压缩数据

原文地址:https://www.cnblogs.com/tangzhe/p/9414643.html