+ [动静混合分区插入数据](#_215)
前言
Hive中支持的分区类型有两种,静态分区(static partition)与动态分区(dynamic partition),本文主要讲针对不同分区情况,如何正确地使用insert into/insert overwrite 将数据插入表里对应的分区。
一、hive分区
hive分区类型
- 静态分区与动态分区的区别:
静态分区字段需要手动指定,通过用户传递来决定;而动态分区字段是根据select出来的具体值进行动态分区。
hive分区参数
- hive.exec.dynamic.partition:是否启动动态分区,默认为false。
- hive.exec.dynamic.partition.mode:打开动态分区后,动态分区的模式为strict和nonstrict。
- strict 可设置为静态和半动态,要求至少包含一个静态分区列。
- nonstrict 可设置为静态、半动态和动态,动态必须设置此参数。
- hive.exec.max.dynamic.partitions:允许的最大的动态分区的个数,默认为1000。
- hive.exec.max.dynamic.partitions.permode:一个mapreduce job所允许的最大的动态分区的个数,默认为100。