Hive动态分区使用
作者:互联网
Hive动态分区的使用
动态分区可以即时给表添加分区,不用通过修改sql实现。
允许在插入的时候指定分区,分区字段为插入时字段的位置决定。
例如:
FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country)
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.cnt
其中country分区为pvs.cnt字段。
动态分区参数
配置参数 | 默认值 | 含义 |
---|---|---|
hive.exec.max.dynamic.partitions.pernode | 100 | 每个map或reduce允许创建的最大分区个数 |
hive.exec.max.dynamic.partitions | 1000 | 允许创建的最大动态分区数 |
hive.exec.max.created.files | 100000 | 可创建的最大文件个数 |
hive.exec.dynamic.partition.mode | strict | strict需要有静态分区字段,nonstrict允许所有分区都是动态的 |
hive.exec.dynamic.partition | false | 是否开启动态分区 |
hive.error.on.empty.partition | false | 是否抛异常,如果动态分区结果为空 |
与静态分区的区别
静态分区需要在建表时指定分区字段,例如:
CREATE TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(dt STRING, country STRING)
STORED AS SEQUENCEFILE;
建立分区dt和country。
标签:pvs,STRING,exec,分区,hive,Hive,动态,page 来源: https://blog.csdn.net/SW_LCC/article/details/99707621