hive根据分区动态插入数据 动态分区 hive表数据迁移

今天需要将一个分区表的数据(A)迁移到另一张表(B),两个表的字段不完全一样,但是分区一样,要求迁入到B表后,原来的数据还在原来的分区里,和原来一一对应,表结构如下:

A:

hive根据分区动态插入数据 动态分区 hive表数据迁移_第1张图片

B:

hive根据分区动态插入数据 动态分区 hive表数据迁移_第2张图片

 

A表的分区:

hive根据分区动态插入数据 动态分区 hive表数据迁移_第3张图片

由于分区比较多,一个分区一个分区迁肯定不现实,所以需要用到动态分区

下面是迁移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,batch_id,p_date,sale_id   -- 这里把B表需要的每个字段都查出来
     from tf_wh_market_history;

下面是相关的属性:

hive根据分区动态插入数据 动态分区 hive表数据迁移_第4张图片

迁移成功:

hive根据分区动态插入数据 动态分区 hive表数据迁移_第5张图片

你可能感兴趣的:(大数据,hive,大数据)