hive分區表增加字段新增字段值爲空的bug

原文鏈接:https://blog.csdn.net/devin07/article/details/49946665

目錄

1.修改元數據

2.刪除當前分區重建

3.更新指定分區的元數據


       最近在查hive版本問題,發現在hive1.1.0和hive1.2.1上,分區表新增字段後新增字段值爲空的情況。網上查了資料,提供了兩種解決辦法:

1.修改元數據

       修改hive元數據SDS表的CD_ID字段,原因是修改表結構後,元數據庫中的SDS中該表對應的CD_ID會改變,但是該表分區下面對應的CD_ID還是原來表的CD_ID

2.刪除當前分區重建

       這兩個辦法都不太適應,辦法1修改元數據庫風險大,辦法2可能會導致數據丟失。

3.更新指定分區的元數據

       老大給的任務是其他辦法workaround。

       通過測試發現如下規律,先給出結論:

       在分區表裏增加字段後,向分區表插入數據有兩種情況:
       1.分區在修改表結構前存在
       2.分區在修改表結構前不存在
       對於第二種情況,bug不存在
       針對第一種情形,
       執行alter table denglg add columns(c3 string);  查分區數據新增字段值爲空,
       需再執行alter table denglg partition(step='1') add columns(c3 string);【假設當前只有step='1'的分區】

 

 

 

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