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中还未修复。