将多表插入到配置单元中的单个表中

z9zf31ra  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(233)

我在“part”列上有一个分区的配置单元表。该表有两个分区值part='good'和part='bad'。
我需要将一个记录从“坏”分区移动到“好”分区,并覆盖“坏”分区以删除移动的记录。为了使这一点更复杂,我正在寻找一种在单个查询中完成的方法,否则异常处理将很困难。
我试着用多表insert在同一个表上进行两个insert查询,如下所示,

from tbl_partition
insert into tbl_partition partition (part='good') select a,b,c where a='a' and part='bad' -- this is where a record is moved from bad to good
insert overwrite table tbl_partition partition (part='bad') select a,b,c where part='bad' and a not in ('a'); -- Overwrite the bad partition excluding already moved record

但是上面的查询总是执行一个insert-into,而不是一个insert和另一个insert-overwrite!!
我甚至尝试使用一个公共表表达式,并使用公共表来同时插入到这个表中,但运气不好!
有没有其他方法可以在一个查询中实现这一点,或者我在上面的步骤中做错了什么?
请注意,我是在Hive1.2的hdp集群上执行此操作的

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题