3 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
配置單元表可以創(chuàng)建為EXTERNAL或INTERNAL。這是一個影響數(shù)據(jù)加載,控制和管理方式的選擇。
在以下情況下使用EXTERNAL表:
該數(shù)據(jù)還用于Hive之外。例如,數(shù)據(jù)文件由不鎖定文件的現(xiàn)有程序讀取和處理。
即使在放置DROP TABLE之后,數(shù)據(jù)也需要保留在底層位置。如果您將多個模式(表或視圖)指向一個數(shù)據(jù)集,或者正在遍歷各種可能的模式,則可以應(yīng)用此方法。
您要使用自定義位置,例如ASV。
Hive不應(yīng)擁有數(shù)據(jù)和控件設(shè)置,目錄等,您可以使用其他程序或進程來執(zhí)行這些操作。
您不是基于現(xiàn)有表(AS SELECT)創(chuàng)建表。
在以下情況下使用INTERNAL表:
數(shù)據(jù)是臨時的。
您希望Hive完全管理表和數(shù)據(jù)的生命周期。

TA貢獻1829條經(jīng)驗 獲得超7個贊
回答您的問題:
對于外部表,Hive不會將數(shù)據(jù)移動到其倉庫目錄中。如果刪除了外部表,那么將刪除表元數(shù)據(jù),但不會刪除數(shù)據(jù)。
對于內(nèi)部表,Hive將數(shù)據(jù)移動到其倉庫目錄中。如果刪除了表,則表元數(shù)據(jù)和數(shù)據(jù)將被刪除。
供你參考,
內(nèi)部和外部表之間的區(qū)別:
對于外部表-
外部表將文件存儲在HDFS服務(wù)器上,但表未完全鏈接到源文件。
如果刪除外部表,該文件仍保留在HDFS服務(wù)器上。
例如,如果您使用HIVE-QL在HIVE中創(chuàng)建一個名為“ table_test”的外部表并將該表鏈接到文件“ file”,則從HIVE中刪除“ table_test”不會從HDFS中刪除“ file”。
有權(quán)訪問HDFS文件結(jié)構(gòu)的任何人都可以訪問外部表文件,因此需要在HDFS文件/文件夾級別管理安全性。
元數(shù)據(jù)保留在主節(jié)點上,從HIVE中刪除外部表只會刪除元數(shù)據(jù),而不會刪除數(shù)據(jù)/文件。
對于內(nèi)部表-
根據(jù)設(shè)置存儲在目錄中
hive.metastore.warehouse.dir
, 默認情況下,內(nèi)部表存儲在以下目錄“ / user / hive / warehouse”中,您可以通過更新配置文件中的位置來進行更改。刪除表將分別從主節(jié)點和HDFS中刪除元數(shù)據(jù)和數(shù)據(jù)。
內(nèi)部表文件安全性僅通過HIVE控制。安全需要在HIVE內(nèi)部進行管理,可能需要在架構(gòu)級別(取決于組織)進行管理。
Hive可能具有內(nèi)部或外部表,這是一個會影響數(shù)據(jù)加載,控制和管理方式的選擇。
在以下情況下使用EXTERNAL表:
該數(shù)據(jù)還用于Hive之外。例如,數(shù)據(jù)文件由不鎖定文件的現(xiàn)有程序讀取和處理。
即使在放置DROP TABLE之后,數(shù)據(jù)也需要保留在底層位置。如果您將多個模式(表或視圖)指向單個數(shù)據(jù)集,或者正在遍歷各種可能的模式,則可以應(yīng)用此方法。
Hive不應(yīng)擁有數(shù)據(jù)和控件設(shè)置,目錄等,否則您可能會有另一個程序或進程來執(zhí)行這些操作。
您不是基于現(xiàn)有表(AS SELECT)創(chuàng)建表。
在以下情況下使用INTERNAL表:
該數(shù)據(jù)是暫時的。
您希望Hive完全管理表和數(shù)據(jù)的生命周期。
- 3 回答
- 0 關(guān)注
- 1004 瀏覽
添加回答
舉報