Hiveの外部テーブルにパーティションを追加した後、どのように更新/削除できますか?
たとえば、次の方法で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);
それが役に立てば幸い!
外部パーティションがあるフォルダーにファイルをコピーするか、使用することができます
INSERT OVERWRITE TABLE tablename1 PARTITION (partcol1=val1, partcol2=val2...)...
ステートメント。
さらに、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);