分桶表的理解

分区表分的是文件夹,分通表分的是 文件

分桶表将整个数据内容按照某列属性值的哈希值进行区分,使用该哈希值除以桶的个数得到取余数,余数决定了该条记录会被分在哪个桶中。余数相同的记录会分在一个桶里。

对分桶表操作

将数据按照指定的字段进行分成多个桶中去,就是按照分桶字段进行哈希划分到多个文件当中去

分区就是分文件夹,分桶就是分文件

分桶优点:

提高join查询效率

提高抽样效率

• 开启hive的捅表功能

set hive.enforce.bucketing=true;

• 设置reduce的个数

set mapreduce.job.reduces=3;

• 创建桶表

create table course (c_id string,c_name string) clustered by(c_id) into 3 buckets;

桶表的数据加载:由于桶表的数据加载通过hdfs dfs -put文件或者通过load data均不可以,只能通过insert overwrite 进行加载

所以把文件加载到桶表中,需要先创建普通表,并通过insert overwrite的方式将普通表的数据通过查询的方式加载到桶表当中去

• 通过insert overwrite给桶表中加载数据

insert overwrite table course select * from course_common cluster by(c_id);  -- 最后指定桶字段

set hive.enforce.bucketing=true;

set mapreduce.job.reduces=3;

create table course (

c_id string,

c_name string)

clustered by(c_id) into 3 buckets;

create table course_common (

c_id string,

c_name string)

insert into course_common values('1','李明'),

 ('3','张三')

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值