問題:在使用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中還未修復。
