hive3的join数据错误

3 篇文章 1 订阅

我们生产使用的hive3.1.2版本,hadoop也是3版本,用户通过使用hive发现join数据错误。分析SQL发现,当3表(含3表)以上,hive join出来的数据是错误。后来我通过测试发现,不管是left join、inner join还是right join,数据都会出现错误,通过后来的其他测试发现,两个表使用in和exists作为条件查询,出来的数据也是错误的。这是hive3的一个重大bug,使用hive3的小心了。

这个bug纠缠了我好久,后来定位出来hive的bug,我们生产环境已经修复了该bug。分析发现hive从2.6.1版本就开始有这个bug

in 和exists案例sql:

select count(mdn) from oth_cdr_cleanout_d where month_id='202111' and pr_id='953' and mdn in (select accs_nbr from test_2922_01_13) ;


select count(*) from (select mdn from oth_cdr_cleanout_d d where month_id='202111' and exists (select accs_nbr from test_2922_01_13 where accs_nbr=d.mdn) group by mdn) t;

 在某些情况下,两表join也可能数据错误

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxl333

原创不容易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值