web-dev-qa-db-ja.com

Hiveパーティションを更新/削除する方法は?

Hive外部テーブルにパーティションを追加した後、どのように更新/削除できますか?

56
darcyq

たとえば、次の方法でHiveパーティションを更新できます。

ALTER TABLE logs PARTITION(year = 2012, month = 12, day = 18) 
SET LOCATION 'hdfs://user/darcy/logs/2012/12/18';

このコマンドは、古いデータを移動したり、古いデータを削除したりしません。パーティションを新しい場所に設定するだけです。

パーティションを削除するには、次のようにします

ALTER TABLE logs DROP IF EXISTS PARTITION(year = 2012, month = 12, day = 18);

それが役に立てば幸い!

136
darcyq

外部パーティションがあるフォルダーにファイルをコピーするか、使用することができます

INSERT OVERWRITE TABLE tablename1 PARTITION (partcol1=val1, partcol2=val2...)...

ステートメント。

1
Sergey Zyuzin

さらに、1つのステートメントから複数のパーティションを削除できます( Impala/Hiveで複数のパーティションを削除 )。

上記のリンクから抽出:

Hive> alter table t drop if exists partition (p=1),partition (p=2),partition(p=3);
Dropped the partition p=1
Dropped the partition p=2
Dropped the partition p=3
OK

編集1:

また、条件記号(>、<、<>)を使用してバルクをドロップできます。次に例を示します。

Alter table t 
drop partition (PART_COL>1);
1
F.Lazarescu