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使用的是压缩数据