hive內部表與外部表

2021-09-24 02:30:08 字數 534 閱讀 2727

假設已經進入hive的環境。有一張叫做test的表

內部表&外部表

未被external修飾的是內部表(managed table),被external修飾的為外部表(external table);

區別:內部表資料由hive自身管理,外部表資料由hdfs管理;

內部表資料儲存的位置是hive.metastore.warehouse.dir(預設:/user/hive/warehouse),外部表資料的儲存位置由自己制定;

刪除內部表會直接刪除元資料(metadata)及儲存資料;刪除外部表僅僅會刪除元資料,hdfs上的檔案並不會被刪除;

對內部表的修改會將修改直接同步給元資料,而對外部表的表結構和分割槽進行修改,則需要修復(msck repair table table_name;)

外部表使用場景

對於一些原始日誌檔案,同時被多個部門同時操作的時候就需要使用外部表,如果不小心將meta data刪除了,hdfs上 的data還在可以恢復,增加了資料的安全性。

Hive 內部表與外部表

首先檢視當前的表 檢視emp表 檢視這個emp表的詳細資訊 可以看到table type是乙個managed table,就是所謂的內部表 首先看一下mysql中的表 tbls 可以看到這個表tbl type是managed table型別,檢視hdfs上的資料 然後從hive中刪除這個表emp 刪...

Hive內部表 外部表

內部表 外部表 未被external修飾的是內部表 managed table 被external修飾的為外部表 external table 區別 內部表資料由hive自身管理,外部表資料由hdfs管理 內部表資料儲存的位置是hive.metastore.warehouse.dir 預設 user...

hive內部表與外部表入門

在hive中,表型別主要分為兩種,第一種 內部表 第二種 外部表 create external table tablename id int name string location path 內部表轉外部表 alter table tablename set tblproperties exte...