hive內部錶轉外部表

hive內部表和外部表之間的相互轉換
背景

在對hive進行進一步瞭解的同時,發現了hive的內部表和外部表可以通過更改屬性進行轉換,並且不會因爲數據量大小影響轉換的性能
實現

內部錶轉外部表

alter table xm_testA set TBLPROPERTIES ('EXTERNAL = true')

外部錶轉換內部表

alter table xm_testB set TBLPROPTIES ('EXTERNAL = false')

使用場景

如果創建的外部表在默認的路徑下,不會刪除文件,即使更改表名,該路徑下的文件的名字也不會改變,此時如果創建再創建一個和原來名字相同的外部表,會造成兩個表的數據路徑是一樣的。如果第二次創建的表和第一次創建的表結構不一致,在查詢第二個表時,會報錯。
這種情景通常用在備份表的時候出現:
當表結構出現變化時,要將歷史表:xm_test表備份爲xm_test_back,再創建一個新具有的表結構的xm_test,但是由於上述的原因,會出現錯誤,解決方案如下:
將xm_text,轉換成內部表,將其改名爲:xm_test_back,再創建一個具有新的表結構的外部表xm_test。

原文鏈接:https://blog.csdn.net/weixin_43192721/article/details/88420932

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章