Hive动态分区
-
hive的动态分区介绍
-
hive的静态分区需要用户在插入数据的时候必须手动指定hive的分区字段值,但是这样的话会导致用户的操作复杂度提高,而且在使用的时候会导致数据只能插入到某一个指定分区,无法让数据散列分布,因此更好的方式是当数据在进行插入的时候,根据数据的某一个字段或某几个字段值动态的将数据插入到不同的目录中,此时,引入动态分区。
-
-
hive的动态分区配置
--hive设置hive动态分区开启 set hive.exec.dynamic.partition=true; 默认:true --hive的动态分区模式 set hive.exec.dynamic.partition.mode=nostrict; 默认:strict(至少有一个分区列是静态分区) --每一个执行mr节点上,允许创建的动态分区的最大数量(100) set hive.exec.max.dynamic.partitions.pernode; --所有执行mr节点上,允许创建的所有动态分区的最大数量(1000) set hive.exec.max.dynamic.partitions; --所有的mr job允许创建的文件的最大数量(100000) set hive.exec.max.created.files;(10万数值是根据linux上1G内存大约同时操作10万个文件,所以去的linux默认1G内存)
-
hive动态分区语法
-
insert into table table_name partition(分区一,分区二) select 插入字段一,插入字段二,age, gender from table_name_other
-