Hive的分桶

Hive分桶基于列值的哈希模运算,将数据分布到不同文件中,适用于数据抽样和map-join。桶的数量通常与reduce任务个数一致,不建议手动设置。加载数据到分桶表需用特定方式,不能使用load。桶表抽样查询使用tablesample语法,例如:TABLESAMPLE(BUCKET x OUT OF y)。
摘要由CSDN通过智能技术生成

分区的基础上 再分桶 1个数据文件划分为多个数据文件

hive 分桶 其实是hash模 桶数

分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。
对于hive中每一个表、分区都可以进一步进行分桶。
由列的哈希值除以桶的个数来决定每条数据划分在哪个桶中。

适用场景:

数据抽样( sampling )、map-join

开启支持分桶

set hive.enforce.bucketing=true;
	默认:false;设置为true之后,mr运行时会根据bucket		的个数自动分配reduce task个数。(用户也可以通过

mapred.reduce.tasks自己设置reduce任务个数,但分桶时不推荐使用)

注意:一次作业产生的桶(文件数量)和reduce task个数一致。 一般不自己设置

也就是桶的数量和reduce 一致的

往分桶表中加载数据

insert into table bucket_table select columns from tbl;
insert overwrite table bucket_table select columns from tbl;

不可以使用load加载数据 load本质是将数据移动到hdfs里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值