Hive分區表新增字段注意事項

分區表新增字段注意事項

對Hive表新增字段時,官方給出語法結構如下
ALTER TABLE table_name
  [PARTITION partition_spec]                
  ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
  [CASCADE|RESTRICT]
1
2
3
4
其中CASCADE選項爲選填的字段,但是對於分區表,一定要加上,否則其歷史分區的元數據信息(metadata)將無法正常更新,導致訪問歷史分區時會報莫名的錯誤

對此,官方給出的使用建議爲:

ALTER TABLE ADD or REPLACE COLUMNS CASCADE will override the table partition’s column metadata regardless of the table or partition’s protection mode. Use with discretion.

本數倉由於大量表都是分區表,因此建議在增加字段時,記得增加CASCADE選項,實際可參考如下例子

ALTER TABLE Database.TableName ADD COLUMNS(
     col1       STRING  COMMENT '列1'
    ,col2       STRING  COMMENT '列2'
    ,col3       STRING  COMMENT '列3'
    ,col4       STRING  COMMENT '列4'
    ,col5       STRING  COMMENT '列5'
) CASCADE;

注意:如果是sqoop將mysql數據同步至hive,沒有指定指定字段的情況下,當mysql表增加字段的時候,此時只需要將hive表添加字段,就OK了。

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