Hive內部表 外部表 區別

2021-09-22 08:11:17 字數 960 閱讀 3872

以下基於hive 2.0.0-snapshot,本人親自實驗的結論!!

新增欄位會導致表結構同時改變,與是否是外部表內部表無關,也與是否指定location無關!

從本地load新分割槽的資料會導致表的分割槽資訊同時改變,與是否是外部表內部表無關,也與是否指定location無關!

2

drop表時,如果是指定location的表,會把路徑下的資料檔案刪掉,只保留空的二級及以上目錄;

如果是不指定location的表(使用預設路徑),會把路徑下的資料檔案刪掉,同時也會刪除該路徑

即----drop表時,會刪掉資料檔案和上一級目錄,上兩級及以上級別的目錄不會刪除,與是否是內部表或外部表沒關係,與是否指定location也沒關係。

當然,指定的location也可與預設location一致

3本地檔案load到目標表後,該本地檔案依然存在,不會被刪除,與是否是外部表內部表無關,也與是否指定location無關!

即----本地檔案load到目標表相當於複製,如果是從hdfs load到目標表則相當於剪下(hive ,從hdfs把資料檔案load匯入到表)4

建立表時,不指定路徑時,location在預設路徑;指定路徑時,location就在指定路徑,與建立的是否是外部表或者內部表無關,外部表也可以不指定location,內部表也可以指定location

這兩天看了網上說的區別,有些誤人子弟,還是親自實踐比較好!!

5刪除某分割槽後,該資料檔案也同時會被刪除;刪除某資料檔案後,該分割槽資訊不會被刪除,msck後該分割槽資訊依然存在。與是否是外部表內部表或者是否指定location均沒有關係。

Hive內部表 外部表區別

hive內部表 外部表區別自不用說,可實際用的時候還是要小心。1.內部表 sql view plain copy print create table tt name string age string location input table data 此時,會在hdfs上新建乙個tt表的資料存放...

Hive內部表和外部表區別

建立內部表 建立 create table art inn sentence string row format delimited fields terminated by n 匯入 建立外部表 注意 外部表是在建立的時候定義實體資料的位置的,而且位置必須為資料夾,不能為檔案。1 匯入資料時 在匯...

hive內部表和外部表的區別 內部表和外部表

內部表 create table if not exists table name刪除表時,元資料與資料都會被刪除 外部表 create external table if not exists table name location hdfs path刪除外部表只刪除metastore的元資料,不...