hive内部表和外部表

原创
2016/04/21 17:48
阅读数 492

hive内部表就是在create的时候,不加external,就是内部表,数据会复制到hive的warehouse里。

hive外部表就是在create的时候,加上external,就是外部表。外部表分多种

有hbase的外部表。有文件系统的外部表,机理是差不错的。基于文件系统的外部表,一定要加location,否则的话会和内部表一样,会复制数据到warehouse。外部表在drop table的时候不会删除location下的数据,只会删除metastore中的表的数据。而内部表会删除所有东西,包括warehouse中的数据和metastore中的数据。

有一次drop一个外部表,但是在warehouse中还是有表的数据,只是show tables时,没有显示表。这是因为我在create外部表的时候,忘记加上location。所以数据会复制到warehouse中,但是drop外部表的时候只会删除metastore中的数据。所以在warehouse中数据总是删除不掉。

所以如果不加location,就不要加external关键字

下面这篇文章讲的就是基于文件系统的外部表和内部表的区别,讲的很详细。注意,基于文件系统的外部表,一定要加location,否则的话会和内部表一样,会复制数据到warehouse。

参考:hive内部表与外部表区别详细介绍

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部