今天需要将一个分区表的数据(A)迁移到另一张表(B),两个表的字段不完全一样,但是分区一样,要求迁入到B表后,原来的数据还在原来的分区里,和原来一一对应,表结构如下:
A:
B:
A表的分区:
由于分区比较多,一个分区一个分区迁肯定不现实,所以需要用到动态分区
下面是迁移sql:
set hive.exec.dynamic.partition=true; -- 开启动态分区
set hive.exec.dynamic.partition.mode=nonstrict;--允许完全动态字段,默认值是strict,如果不设置,只要要求有一个分区需要指定分区值
insert into table tf_wh_market_history
partition (p_date,sale_id)
select serial_number,'',aim_sub_id,