2017-01-06 19 views
1

私はパーティション表「page_view」を上書きするハイブ動的パーティショニングを使用したい:動的パーティション分割はすべてのパーティションを更新しますか?

INSERT OVERWRITE TABLE page_view PARTITION(date) 
    SELECT pvs.viewTime FROM page_view_stg pvs 

私の質問は次のとおりです。テーブル「page_view_stgは」唯一「= 2017年1月1日の日付」のデータを持っている場合destテーブル "page_view"にはパーティション "date = 2017-01-02"があります。だから、このクエリを実行した後、パーティション "date = 2017-01-02"がドロップされるかどうか?そうでない場合は、動的パーティショニングを使用してこのケースをどのように処理する必要がありますか?動的パーティショニングと

おかげ

答えて

0

クエリは、ソースデータセット内の既存のパーティションのみが上書きされます。あなたのケースでは、partition "date=2017-01-02"は、ソーステーブルにそのような日付が含まれていない場合は変更されません。それをドロップしたい場合、最も速い方法はalter table drop partitionステートメントをメタデータ操作であるため実行することです。ターゲットテーブルからソースに存在しないパーティションを選択し、シェルを使用してdropステートメントを生成します。または新しいテーブルに挿入し、古いターゲットを削除してから、名前を変更します。

関連する問題