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