Hive动态和静态分区

1、动态分区全量

注意:动态分区字段必须在最后面及必须设置set hive.exec.dynamic.partition=true;不然报错

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions=100000;
set hive.exec.max.dynamic.partitions.pernode=100000;
set hive.optimize.sort.dynamic.partition=true;
insert overwrite table t02_prod_quotation partition(busi_date)
select 
t1.trade_dt                       AS TRADE_DT,                      --'交易日期' 
t1.sk_f_prod                      AS SK_F_PROD,                     --'产品代理外键'            
t1.sk_f_prod_source               AS SK_F_PROD_SOURCE,              --产品代理键来源01母02子   
concat(t1.prod_code, if(substr(t1.sk_f_prod,3,2)='01', '.OF', '.PF')) AS STD_SECU_CODE,                 --'标准证券代码'            
t1.prod_code                      AS PROD_CODE,                     --'产品代码'                
t1.prod_name                      AS PROD_NAME,                     --'产品名称'                
from_unixtime(unix_timestamp(), 'yyyyMMddHHmmss') AS SYNTIMESTAMP,         --'内部使用'
from_unixtime(unix_timestamp(), 'yyyy-MM-dd') AS CREATE_DT,         --'创建日期'
from_unixtime(unix_timestamp(), 'yyyy-MM-dd') AS UPDATE_DT,         --'更新日期'
t1.busi_date                                 AS busi_date          --分区日期
from tmp_t02_prod_quotation_all_02 t1

3、静态分区增量

insert overwrite table t02_prod_quotation partition(busi_date = '2020-01-01')
select 
t1.trade_dt                       AS TRADE_DT,                      --'交易日期' 
t1.sk_f_prod                      AS SK_F_PROD,                     --'产品代理外键'            
t1.sk_f_prod_source               AS SK_F_PROD_SOURCE,              --产品代理键来源01母02子   
concat(t1.prod_code, if(substr(t1.sk_f_prod,3,2)='01', '.OF', '.PF')) AS STD_SECU_CODE,                 --'标准证券代码'            
t1.prod_code                      AS PROD_CODE,                     --'产品代码'                
t1.prod_name                      AS PROD_NAME,                     --'产品名称'                
from_unixtime(unix_timestamp(), 'yyyyMMddHHmmss') AS SYNTIMESTAMP,         --'内部使用'
from_unixtime(unix_timestamp(), 'yyyy-MM-dd') AS CREATE_DT,         --'创建日期'
from_unixtime(unix_timestamp(), 'yyyy-MM-dd') AS UPDATE_DT         --'更新日期'
from tmp_t02_prod_quotation_02 t1

猜你喜欢

转载自blog.csdn.net/u011135852/article/details/107832594