hive动态分区

不需要为不同的分区添加不同的插入语句
分区不确定,需要从数据中获取
几个参数:

set hive.exec.dynamic.partition=true//使用动态分区
set hive.exec.dynamic.partition.mode=nonstrick//无限制模式,如果模式是strict,则必须有一个静态分区,切放在最前面
set hive.exec.max.dynamic.partitions.pernode=10000//每个节点生成动态分区的最大个数
set hive.exec.max.dynamic.partitions=100000//生成动态分区的最大个数
set hive.exec.max.created.files=150000//一个任务最多可以创建的文件数目
set dfs.datanode.max.xcievres=9182//限定一次最多打开的文件数
create table d_part(
    name string
)
partitioned by (value string)
row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile;

set hive.exec.dynamic.partition=trueset hive.exec.dynamic.partition.mode=nonstrick;
insert overwrite table d_part partition(value)
select name,addr as value from somtable;

将addr作为分区字段插入

多个字段分区

create table d_part(
    name string
)
partitioned by (month string,day string)
row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile;

有静态分区,静态分区放在前面

你可能感兴趣的:(#,hive)