一)hive中支持两种类型的分区:
静态分区SP(static partition)
动态分区DP(dynamic partition)
静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断。详细来说,静态分区的列实在编译时期,通过用户传递来决定的;动态分区只有在SQL执行时才能决定。
二)实战演示如何在hive中使用动态分区
1、创建一张分区表,包含两个分区dt和ht表示日期和小时
CREATE TABLE partition_table001
(
name STRING,
ip STRING
)
PARTITIONED BY (dt STRING, ht STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
2、启用hive动态分区,只需要在hive会话中设置两个参数
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
3、把partition_table001表某个日期分区下的数据load到目标表partition_table002 使用静态分区时,必须指定分区的值,
如:
create table if not exists partition_table002 like partition_table001;
insert overwrite table partition_table002 partition (dt=&#

本文介绍了Hive中的静态和动态分区概念,静态分区需手动指定,而动态分区依据数据自动判断。通过实战演示,展示了如何在Hive中启用动态分区,并通过一条SQL语句高效地将数据插入到动态分区表中。
最低0.47元/天 解锁文章
2443

被折叠的 条评论
为什么被折叠?



