美文网首页
HIVE 表设计优化2 分区表 动态分区调整

HIVE 表设计优化2 分区表 动态分区调整

作者: 无来无去_A | 来源:发表于2020-08-06 16:39 被阅读0次

动态分区调整

关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。

1. 开启动态分区参数设置
(1)开启动态分区功能(默认true,开启)

hive.exec.dynamic.partition=true

(2)设置为非严格模式(动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。)

hive.exec.dynamic.partition.mode=nonstrict

(3)在所有执行MR的节点上,最大一共可以创建多少个动态分区。默认1000

hive.exec.max.dynamic.partitions=1000

(4)在每个执行MR的节点上,最大可以创建多少个动态分区。该参数需要根据实际的数据来设定。比如:源数据中包含了一年的数据,即day字段有365个值,那么该参数就需要设置成大于365,如果使用默认值100,则会报错。

hive.exec.max.dynamic.partitions.pernode=100

(5)整个MR Job中,最大可以创建多少个HDFS文件。默认100000

hive.exec.max.created.files=100000

(6)当有空分区生成时,是否抛出异常。一般不需要设置。默认false

hive.error.on.empty.partition=false

2. 案例实操
需求:将dept表中的数据按照地区(loc字段),插入到目标表dept_partition的相应分区中。
(1)创建目标分区表

hive (default)> create table dept_partition(id int, name string)
partitioned by (location int) 
row format delimited fields terminated by '\t';

(2)设置动态分区

set hive.exec.dynamic.partition.mode = nonstrict;
hive (default)> insert into table dept_partition partition(location)
select deptno, dname, loc from dept;

(3)查看目标分区表的分区情况

hive (default)> show partitions dept_partition;

相关文章

  • HIVE 表设计优化2 分区表 动态分区调整

    动态分区调整 关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中...

  • Hive优化

    这里从四个方面对 Hive 常用的一些性能优化进行了总结。 一 : 表设计层面优化 利用分区表优化 分区表 是在某...

  • Hive调优之设计篇

    从设计上来考虑HQL的优化,会涉及到表设计、数据格式以及Job任务优化等。 分区表设计Hive 分区是最有效的优化...

  • 【Hive】优化

    分区表的设计和优化 普通表结构问题 使用分区表可以优化上述查询问题 分桶表的设计和优化 Join问题 分桶表设计 ...

  • hive 动态分区

    目的,往分区表中插入数据: 创建一个分区表:插入数据报错,原因是没有开启动态分区 执行命令: set hive.e...

  • 坑合集

    Flume flume细节 Hive 数据倾斜Hive优化 Hive分区表新增字段为null的bug及解决方法 S...

  • PySpark写数到 Hive 动态分区

    首先,写入动态分区表,要设置一些严格模式的参数,将其设置为非严格模式 插入非分区 Hive 表 对于插入 Hive...

  • hive的严格模式和分区

    相比mysql,hive有严格模式存在,为了不错误扫描整个数据,hive的分区表会将数据分成几个分区。查询分区表中...

  • HiveSQL分区-DML

    分区 创建分区表 以性别分区;分区字段不可与表列名重复! 载入分区表数据 介绍load-data:Hive-DML...

  • Hive 分区表动态分区

    动态分区与静态分区区别就是不指定分区目录,由系统自己选择。 SET hive.exec.dynamici.part...

网友评论

      本文标题:HIVE 表设计优化2 分区表 动态分区调整

      本文链接:https://www.haomeiwen.com/subject/cpftdktx.html