Delta Lake 修改分區表的表結構

Delta Lake 將數據從oracle 轉移到hdfs上後,有時需要修改表結構,可能之前導的字段無法滿足目前的需求,需要新增字段,而如果單純新加入字段到代碼中會提示錯誤,因為之前存儲存儲的表結構中沒有記錄新增的字段,導致不管是insert 還是 merge 都會失敗。

這個時候,想到的辦法就是 在一個不存在的分區中修改表結構,覆蓋整個表結構。


Delta Lake 修改分區表的表結構

當發現 新導入的結果的表結構和當前的表結構不一致後,開始新增 新添加的字段名稱和類型,

然後將這個結果 filter 一個不存在的分區,也就是空分區,執行 append操作。

當然操作中需要加入 mergeSchema 和 overwriteSchema 。保證覆蓋表結構不會異常。

等這個操作完成之後,再執行 正常的數據合併就沒有關心了。

不過美中不足的是 ,Delta lake 只能 新增表結構而不能刪除表結構。


分享到:


相關文章: