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

 

posted @ 2021-07-20 16:36  欣欣姐  Views(2584)  Comments(0Edit  收藏  举报