HIVE 动态分区表详解

备注:写一点关于动态分区表的东西(参见:https://blog.csdn.net/qq_26442553/article/details/80382174)

不多说开始发车

一 简单的动态分区

1:创建分区表

-- 创建3列的分区表,其中dt为分区列
create table if not exists test_dwd_market_activity (
  id bigint   ,
  ctime timestamp   
)
partitioned by (dt string)
row format delimited fields terminated by '\t' 
STORED AS parquet;

2:为分区表加载数据

-- 注:分区列放在select 的最后,在加载数据的时候会自动识别
hive.exec.dynamici.partition=true;  -- 开启动态分区,默认是false
set hive.exec.dynamic.partition.mode=nonstrict;  -- 开启允许所有分区都是动态的,否则必须要有静态分区才能使用。
insert overwrite table game_dwd.test_dwd_market_activity 
partition(dt) 
select id ,ctime,
substr(ctime, 0, 10) -- 注意:不以名字而是以分区字段位置判断是否是分区表   
from  game_ods.c_market_activity; 

你可能感兴趣的:(sql,数据仓库,HVIE)