2016-09-13 8 views
0

私は実行エンジンとしてスパークでハイブに取り組んでいます。テーブルは、非圧縮の寄木細工です。数秒でハイブ "挿入する...選択...限界"非常に遅い

このステートメントのデータを返します:

select * from mydb.src_table 
limit 100; 

しかし、私は次の操作を行い、insert文は非常に遅いです:

create table mydb.dest_table 
    like mydb.src_table 
; 

insert into mydb.dest_table 
    select * from mydb.src_table 
    limit 100 
; 

私は10分後にinsertクエリを殺しました。 src_tableはかなり大きく(2億以上の行、多くのテキストを含む数個の列)、100行しか得られません。私はちょうどselect ... limitが非常に速いが、insert ... select ... limitがとても遅い方法を理解していない。

selectEXPLAINは1段階を示します。しかし、insertの場合、それは8段階以上を示しています - 何が起こっているのですか?

アイデア?

答えて

0

テーブルを作成し、レコードを挿入する必要はありません、

CREATE TABLE IF NOT EXISTS mydb.dest_table 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '28' 
STORED AS TEXTFILE AS 
SELECT * FROM mydb.src_table; 
+0

おかげで、私はそのイディオムの承知しているが、私はデータを挿入することはそうである理由を知りたい、これを試してCTAS
を試してみてください選択を100行に制限しているときは遅いです。 –

+0

ハイブコンソールまたは他のプラットフォームでクエリを実行していますか? –

+0

色相ウェブインターフェイスの使用。 –

関連する問題