hive的内部表和外部表的区别

1.内部表和外部表
1)管理表:当我们删除一个管理表时,Hive也会删除这个表中数据。管理表不适合和其他工具共享数据。
2)外部表:删除该表并不会删除掉原始数据,删除的是表的元数据

2.管理表和外部表的使用场景
每天将收集到的网站日志定期流入HDFS文本文件。在外部表(原始日志表)的基础上做大量的统计分析,用到的中间表、结果表使用内部表存储,数据通过SELECT+INSERT进入内部表。

3.管理表与外部表的互相转换

(1)查询表的类型
hive (default)> desc formatted student2;
Table Type: MANAGED_TABLE

(2)修改内部表student2为外部表
alter table student2 set tblproperties('EXTERNAL'='TRUE');

(3)查询表的类型
hive (default)> desc formatted student2;
Table Type: EXTERNAL_TABLE

(4)修改外部表student2为内部表
alter table student2 set tblproperties('EXTERNAL'='FALSE');

(5)查询表的类型
hive (default)> desc formatted student2;
Table Type: MANAGED_TABLE

注意:('EXTERNAL'='TRUE')和('EXTERNAL'='FALSE')为固定写法,区分大小写!

posted @ 2019-11-20 20:29  Y歪  阅读(2735)  评论(0编辑  收藏  举报