码迷,mamicode.com
首页 > 其他好文 > 详细

HIVE 分桶模式

时间:2020-05-02 12:06:26      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:sele   user   weight   clu   class   mat   enforce   指定   limited   

1.分桶之前要打开  hive.enforce.bucketiong=true;

 

2.分桶处理的对象必须是有,有效的列 , 比如我分了三个桶,针对id , 那么就是取id的hash值 , 然后分别放入三个不同之中 ,注意

-----不能指定数据存放在哪个桶 , 他自己会根据哪个列判断 , 你只需要保证传入的数据具有哪个列就好了.

其实有点类似于hashmap分区

 

1.创建分桶表

create table yask(id int,name string) clustered by(id) Row Format Delimited Fields Terminated By \t;

注意: 这里面id是从前面拿出来得到 , 和分区独立开不一样 

 

2.插入数据

这里面插入数据是从select * from  里面插入的 , 而不是load进来的,因为需要指定列作为hash的依据

inset overwrite table yask select * from userinfo;

查看分桶信息

hive> dfs -ls /usr/hive/warehouse/yask

查询分桶的数据

select * from yask tablesample(bucket 1 out of 3 on id);
要制定关键字tablesample

 

HIVE 分桶模式

标签:sele   user   weight   clu   class   mat   enforce   指定   limited   

原文地址:https://www.cnblogs.com/alpha-cat/p/12817363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!