HIVE批量更新表信息

ALTER TABLE 表名 REPLACE COLUMNS(
  
  -- 更新後的表信息
  `id`                              bigint COMMENT '自增主鍵',
  `cid`                             string COMMENT '創建人(初始化數據值爲初始化)',
  `ctime`                           string COMMENT '創建時間',
  `uid`                             string COMMENT '更新人(初始化數據值爲初始化)',
  `utime`                           string COMMENT '更新時間'

) cascade;

官方文檔描述如下:

The CASCADE|RESTRICT clause is available in Hive 1.1.0.

ALTER TABLE ADD|REPLACE COLUMNS with CASCADE command changes the columns of a table's metadata, and cascades the same change to all the partition metadata.

RESTRICT is the default, limiting column changes only to table metadata.

如上所述,在1.1.0中表和分區的元數據就是分開處理的,在增加字段的時候添加CASCADE能同時更新表和分區 對於,在添加字段的時候沒有指定的cascade的情況

因爲我們在重跑數據的時候,雖然HDFS上的數據更新了,但是我們查詢的時候仍然查詢的是舊的元數據信息(即Mysql中的信息)

注意:對於執行了add column語句之後新生成的分區,是不會有問題的,Hive會自動維護新分區中的元數據。

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