使用分区是为了提高,对数据的查询,分析效率。
一,动态分区
hive有动态分区和静态分区,选用什么分区要根据是数据来决定。
比如: 你有一份业务数据而且每天都有很多增量,那么怎么保证长时间积累下来的大量数据,对此就要用分区来提高查询。
这是你的数据中有时间字段,那么你就可以按时间分区,此时开启动态分区载入数据,hive会帮你按照设置好的分区自动划分数据,而不需要你再像静态分区一样手动的指定数据存入哪一分区。
开启动态分区:
1.设置参数(有3种设置hive参数的方式,这里使用set方式设置)
修改为: set hive.exec.dynamic.partitoin=true;
默认:false
此参数是开启hive的动态分区支持
修改为: set hive.exec.dynamic,partition.mode=nostrict;
默认:strict (默认是严格模式——即至少要有一个分区列为静态分区)
此参数是关闭hive的严格模式
现在就可以使用动态分区了。
另外的相关参数:
set hive exec.max.dynamic.partition.pernode;
>在一个执行节点上,允许创建的动态分区的最大量(默认100)
set hive.exec.max.dynamic.partition;
>在所有执行节点上,允许创建的动态分区的最大量(默认10000)
set hive.exec.max.created.files;
>所有mr job允许创建的文件的最大数量(默认100000)
以上参数根据实际请款调节