Hive 动态分区

Hive通过分区可以提升查询速度和性能,主要分为静态和动态分区。静态分区是手动指定分区值,适合小批量插入。动态分区则根据查询时的值动态设置,适合大批量插入,但过多的分区可能导致IO资源消耗增加,影响查询时间和性能。启用动态分区配置需谨慎考虑。
摘要由CSDN通过智能技术生成

hive 可以通过分区缩小数据集,避免全表扫描,提高查询速度和性能的。

Hive 的分区主要有两种:静态分区 和 动态分区

Hive静态分区

Hive的静态分区,实际上就是手动指定分区的值为静态值,这种对于小批量的分区插入比较友好。

在插入语句中如果partition字段指定了具体 的值 ,例如:partition(year=“2020”)

这样的分区就叫静态分区了,是不是很简单?

Hive动态分区

Hive的动态分区,其实就是把静态分区中的分区值设置为动态的值

insert overwrite table dynamic_partition partition(year=year)

select user_id, user_name, year from demo

语句中partition(year=year)会根据具体值的变化而变化,无需手动指定,这对于大批量的分区插入是一个很方便的用法,但需要根据业务需求衡量分区数量是否合理的问题。毕竟分区会占用IO资源,数量越多,IO资源消耗越大,查询时间和性能都是有所损耗的。

开启动态分区配置:

-- Hive默认配置值
-- 开启或关闭动态分区
hive.exec.dynamic.partition=false;
-- 设置为nonstrict模式,让所有分区都动态配置,否则至少需要指定一个分区值
hive.exec.dynamic.partition.mode=strict;
-- 能被mapper或reducer创建的最大动态分区数,超出而报错
hive.exec.max.dynamic.partitions.pernode&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值