2016-10-19 4 views
0

パーティションテーブルで上書きを実行しました。コマンドの後に、たとえば以下のパーティションが作成されたとします。 a、b、c、d、eHIVEパーティションテーブルに上書きを挿入します。

ここでは、上書き挿入テーブルを再実行しますが、今回はまったく異なるデータセットを使用しています。たとえば、2番目の挿入後、パーティションの下に作成されます。質問 - 2番目の挿入物からのデータは、最初の挿入物に属するデータを上書きしませんか? 2番目の挿入後、HDFSにフォルダa、b、c、d、eが表示されます。しかし、私がHIVEを通してそれらを照会すると、パーティションa、b、c、d、eは表示されません。

これは、上書き挿入表の予想される動作ですか?または私はここに何かを逃していますか?

+2

サンプルの挿入コマンドを共有 –

答えて

0

Thats strange。上記のシナリオを試しましたが、異なる結果が表示されます。最初に、a、b、c、d、eパーティションを作成した上書きを挿入しました。 SHOW PARTITIONSコマンドでもそれらを見ることができ、データを返す選択クエリを実行することができます。

次に、5つの新しいパーティションf、g、h、i、jを作成した別のインサートを上書きしました。 SHOW PARTITIONSを実行すると、aからjまでのすべてのパーティションが表示されます。また、データはすべてのパーティションで無傷であり、selectステートメントを介してフェッチすることができます。

次の手順として、既存のパーティションにデータをロードしようとしましたが、そのデータがパーティション内の既存のデータを上書きすることがわかりました。 これは予期した動作です。

テーブルの作成とデータの読み込みに使用したステートメントを共有してください。

1

ハイブに上書きを挿入すると、既存のすべてのデータが削除され、以前作成したパーティション(テーブルを作成したとき)で新しいデータが書き込まれます。パーティションを作成すると、それらはハイブメタデータに追加されますが、パーティションやテーブルを削除するまでそこにとどまります。したがって、テーブルを上書きすると、それらのパーティションは新しいデータに適用されます。

関連する問題