hive分区表之insert overwrite 注意事项

hive version 3.1.3

以往我们插入分区 需要

insert ovewrite table  p_table partition(period_id=‘202212’) 

select id name from xxxx;

 或者是

insert overwrite table 

select  id,name,period_id from table where period_id=202212

前者是指定分区,后者是动态分区。没啥好说的。

但是今天遇到一个问题,如果我查询的数据=0,那么数据还会覆盖么?

insert overwrite table dwdmdata.xxx partition (period_id = '209901')

select id ,name

from dwdmdata.dm_ce_f_debts_mandate where 1=2  

insert overwrite table dwdmdata.xxx

select id ,name,'209902' as period_id

from dwdmdata.dm_ce_f_debts_mandate where 1=2 

 

 结果

直接插入分区的,分区都没了。209901不见了

动态分区插入的 没有影响。

所以这里有个注意事项!!!! 如果我们建立了一个分区表,如果每个月都要更新数据,不要因为省事就是用动态分区插入。

比如跑上月的数据最开始有44条记录,后面业务说不对,应该一条都没有的,结果你重跑了,确实跑出了0条记录,但是你插入的时候就是不能覆盖。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值