赞
踩
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条记录,但是你插入的时候就是不能覆盖。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。