5.1.2 表分区
操作场景
:
将数据分区,有助于减少查询时的数据量读取。例如按照天分区,那么按照时间跨度的查询,就可以通过排除掉一些分区,减少需要读取的文件数。
分区支持多层,即对多个字段分区,支持动态分区,使用动态分区请参考5.8.5章节的注意事项;
单表的分区要尽量控制在10万以内,分区太多,会导致产生很多小文件,获取分区信息耗时等问题;
修改参数:
参数名 | 优化描述 |
---|---|
hive.exec.dynamic.partition.mode | 默认值strict,修改值nonstrict; |
hive.exec.max.dynamic.partitions | 默认值1000,最大动态partition的数量,可以根据分区的大小进行修改; |
hive.exec.max.created.files | 默认值100000,一个MR job中最多可以创建文件的数量; |