私はハイブでいくつかのクエリの自動スクリプトをいくつか実行しており、テーブルからデータをクリアして新しいテーブルを挿入する必要があることがわかりました。そして、我々はもっと速くなることができると考えていますか?HIVE - INSERT OVERWRITEとDROP TABLE + CREATE TABLE + INSERT INTO
INSERT OVERWRITE TABLE SOME_TABLE
SELECT * FROM OTHER_TABLE;
かのように行うには速いです:
DROP TABLE SOME_TABLE;
CREATE TABLE SOME_TABLE (STUFFS);
INSERT INTO TABLE
SELECT * FROM OTHER_TABLE;
クエリを実行しているのオーバーヘッドは問題ではありません。私たちはスクリプト作成も行っているからです。問題は、十億行あるINSERT OVERWRITE
がDROP + CREATE + INSERT INTO
より速いということですか?
'Insert OVERWRITE'以前のデータがHDFSから削除され、テーブル/パーティションで新しいデータのみが削除されていることを確認してください。 'DROP + CREATE + INSERT INTO'は同じことを保証しないかもしれません。 – Ambrish