2017-10-27 6 views
0

既存のデータを保持しながらテーブルに行を挿入しようとしていますが、Hiveは既に存在するものを上書きします。INSERT INTOがHiveで上書きを引き起こすのはなぜですか?

1 2 
3 4 

だけ表の1行(3 4)を参照:次のように実行した後、私は2行を期待します。

CREATE TABLE `my_db.test_table` 
(
    `x1` STRING 
    ,`x2` STRING 
) 
LOCATION '/.../test_table' 
; 

INSERT INTO TABLE `my_db.test_table` 
SELECT '1', '2' 
; 

INSERT INTO TABLE `my_db.test_table` 
SELECT '3', '4' 
; 

the Hive Language Manualによると、上書きだけではないINSERT INTOで、INSERT OVERWRITEで起こるはず。 これは何が上書きされる可能性がありますか?

答えて

0

私は原因を見つけました:それはバックティック/バッククォート( `)です。問題はhereと記載されています。これが付加されますながら

INSERT INTO TABLE `my_db.test_table` 
SELECT '3', '4' 

これは上書きを行います

INSERT INTO TABLE my_db.test_table 
SELECT '3', '4' 
0

ちょっと私は私の最後で同じことをしようとしたデータが次々と追加取得することができました。..

そして、あなたは私たちがOVERWRITEハイブを指定した場合にのみ述べたように、以前に利用可能だったデータが削除されます。 enter image description here また、ディレクトリには2つのファイルがあり、連続したINSERT INTOステートメントごとに、新しいファイルがディレクトリの下に作成されることがわかります。

Files under the Directory

CREATE TABLE IF NOT EXISTS Test_Table (X1 STRING, X2 STRING) LOCATION '/hive1'; 

はあなた再び同じことをやってみてください、あなたはまだ問題に直面している場合はお知らせくださいもらえますか?

+0

感謝を!実際にはHiveのバグだと思われます。私の答えのリンクをチェックしてください。 – Narvarth

関連する問題