您还可以使用动态分区插入和 where partition column NOT in (select from myname.mytable) . 像这样:
INSERT OVERWRITE TABLE myname.mytable PARTITION (ds)
select col1, col2 ...
'2019-07-19' ds --partition column
from ...
where ds not in (select distinct ds from myname.mytable where ds='2019-07-19')
在分区存在的情况下,select不会为现有分区返回任何行,因此不会覆盖分区。您也可以使用not exist for the same。
2条答案
按热度按时间ldioqlga1#
如果使用动态分区的配置单元表插入/覆盖配置单元表,则只有在select语句中提取了该分区时,它才会覆盖。
另一种方法是:
8ljdwjyq2#
您还可以使用动态分区插入和
where partition column NOT in (select from myname.mytable)
. 像这样:在分区存在的情况下,select不会为现有分区返回任何行,因此不会覆盖分区。您也可以使用not exist for the same。