Hive的内部表和外部表之间相互转换

1,内部表转换为外部表,EXTERNAL大写

ALTER TABLE tablename SET TBLPROPERTIES ('EXTERNAL' = 'true');
修改完成后,查看MySQL元数据TBLS表,发现该表这条数据对应的TBL_TYPE字段变成了 EXTERNAL_TABLE

尝试DROP这个table之后,该表在hdfs上面的数据不会被删除了,因为变成了外部表了
但是元数据表TBLS里面关于该表的还是会被删除

2,外部表转内部表,EXTERNAL大写

ALTER TABLE emp_external SET TBLPROPERTIES ('EXTERNAL' = 'false');

修改完成后,查看MySQL元数据TBLS表,发现该表这条数据对应的TBL_TYPE字段变成了 MANAGED_TABLE

尝试DROP这个table之后,该表在hdfs上面的数据被删除了,因为变成了内部表了
但是元数据表TBLS里面关于该表的还是会被删除

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/Partition/Column
ALTER TABLE table_name SET TBLPROPERTIES table_properties;
参考上面这个语句和官网链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容