步骤1: 建立好分区表
步骤2: 设置分区参数
set hive.exec.dynamic.partition=true;(可通过这个语句查看:set hive.exec.dynamic.partition;)
set hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.max.dynamic.partitions=100000;(如果自动分区数大于这个参数,将会报错)
SET hive.exec.max.dynamic.partitions.pernode=100000;
示例如下 :
ymonth为分区字段,以202001,202002的年月的样子,实现动态分区
concat(substr(CURRENT_DATE,1,4),substr(CURRENT_DATE,6,2)) 为分区用的函数
注意: select 中的 ymonth要放到最后面
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table aaaaa partition(ymonth)
select mdm_proj_mpvalue,
mdm_proj_mnvalue,
concat(substr(CURRENT_DATE,1,4),substr(CURRENT_DATE,6,2)) ymonth
from bbbbbb;