Hive insert into 竟然覆蓋了原來的數據


問題:在使用hive的insert into 往表里插入數據時 ,卻發現原來的數據被覆蓋了。如下圖,如論insert 語句執行多少次,只會有最新的一條數據。(情況跟overwrite一樣)

經過多次查找原因,才知道時因為飄號的原因,去掉飄號就可以了

 

 

 總結:

所以要么用戶名和表名分別都加飄號,要么就都別加,不要用戶名和表名都放在一個飄號里

insert into  `wf`.`insert_test_2` partition(dt='2020-07-01')  select 'uiyo1234','20210701256811','2020-07-01' ;   --正常insert
insert into   wf.insert_test_2 partition(dt='2020-07-01')  select 'uiyo1234','20210701256811','2020-07-01' ;      --正常insert

insert into  `wf`.`insert_test_2` partition(dt='2020-07-01')  select 'uiyo1234','20210701256811','2020-07-01' ;   --原來數據被覆蓋,效果同overwrite

在網上找到這樣的解釋:

如果是建議你使用以下這種方式處理轉義字符,可以正常insert into`DatabaseName`.`TableName`
例如,insert into `db`.`tableA` select t.a, t.b from tableB t
問題原因:使用`DatabaseName.TableName`時語法解析為OVERWRITE,該問題為apache社區問題。在當前版本的hive中還未修復。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM