2017-04-06 40 views
-1

假設我有一個預定義的Hive表,並且分區已加載到它。如果我放棄,然後重新創建表,我會失去分區信息覆蓋配置單元架構元數據而不丟棄並創建

CREATE EXTERNAL TABLE t1 
(
user_id STRING 
) 
PARTITIONED BY (dt STRING) 
LOCATION... 

CREATE EXTERNAL TABLE t1 
(
c1 STRING 
) 
PARTITIONED BY (dt STRING) 
LOCATION... 

ALTER TABLE t1 ADD PARTITION (dt = '2017-01-01') 

現在我代表模式的新文本。 我正在尋找一種方法來重新定義列模式部分,而無需手動添加/刪除/重命名列(不是一次性的事情,試圖自動執行模式更新過程)。

+0

問題不明確。請使用小數據樣本來說明您的情況。 –

+0

(1)數據樣本是我們生成演示的良好基礎,並且您可以驗證建議的解決方案是否滿足您的需求。 (2)模式是否更改與舊分區或僅新分區有關? (3)添加/刪除/重命名有什麼問題? –

+0

1)問題只是關於元數據2)只有列(不是分區列)可以改變。 3)試圖自動化模式更新過程,所以手動重命名/刪除/添加列是可行的,但需要更多的工作和更容易出錯......謝謝! – harel

回答

0

我找到了一種方法做我需要「幾乎」是什麼:

蜂巢支持

REPLACE COLUMNS 

這意味着我可以更換新的所有舊列。