Hive内部表:默认创建的表是内部表。hive完全管理表(元数据和数据)的声明周期,类似于RDBMS的表。当删除表时,他会删除源数据以及表的元数据。

Hive外部表:外部表的数据不是Hive拥有或者管理的,只管理元数据的声明周期。要创建一个外部表,需要使用external关键字。删除外部表是只会删除元数据,而不会删除实际数据(源数据)。在hive外部依然可以访问实际数据(HDFS)。

外部表:

内部表:

内部表删除会删除HDFS存储的源数据以及元数据也被删除。

所以我们在选择建表时,当需要通过hive完全管理控制表的整个生命周期时,请使用内部表。

 当文件已经存在或者位于远程位置的时候,请使用外部表,因为即使删除表,文件也会被保留。

表区内部表和外表的区别