2017-04-06 6 views
-1

パーティションがロードされた定義済みのハイブテーブルがあるとします。削除および作成なしでハイブスキーマのメタデータを上書きする

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

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

は今、私は、スキーマを表す新しいテキストを得た:

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

私がドロップして、テーブルを再作成した場合、私はパーティション情報を失うことになります。 カラムの手動追加/削除/名前変更なしにカラムスキーマの部分を再定義する方法を探しています(スキーマの更新プロセスを自動化しようとしていません)。

+0

質問は不明です。小さなデータサンプルを使用してシナリオを説明してください。 –

+0

(1)データサンプルは、デモを生成し、提案されたソリューションがお客様のニーズに対応しているかどうかを検証するのに適しています。 (2)スキーマは古いパーティションまたは新しいパーティションのみに関連して変更されますか? (3)追加/削除/名前変更の問題は何ですか? –

+0

1)質問はメタデータに関するもののみです。2)列(パーティション列ではない)だけを変更することができます。 3)スキーマの更新プロセスを自動化しようとすると、列の名前を手動で変更/削除/追加することは可能ですが、作業が多くなり、エラーが発生しやすくなります...ありがとうございます! – harel

答えて

0

私は「ほとんど」私は必要なものを行う方法を見つけました:

ハイブは、私は新しいものにすべての古い列を置き換えることができることを意味

REPLACE COLUMNS 

をサポートしています。

関連する問題