hive内部表,外部表区别


内部表,就是一般的表,前面讲到的表都是内布标,当表定义被删除的时候,表中的数据随之一并被删除。

外部表,数据存在与否和表的定义互不约束,仅仅只是表对hdfs上相应文件的一个引用,当删除表定义的时候,表中的数据依然存在。

创建外部表, external是外部表的关键字,也是和内部表有区别的地方
create external table tblName(colName colType...);
加载数据
alter table tblName set location 'hdfs_absolute_uri';

外部表还可以在创建表的时候指定数据的位置,引用当前位置的数据。
create external table tblName(colName colType...) location 'hdfs_absolute_uri';

内部表和外部表的转换:
内——>外
alter table tblName set tblproperties('EXTERNAL'='TRUE');
外——>内
alter table tblName set tblproperties('EXTERNAL'='FALSE');

猜你喜欢

转载自blog.csdn.net/tangerine_bisto/article/details/78454680