HIVE 分桶模式

Posted alpha-cat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIVE 分桶模式相关的知识,希望对你有一定的参考价值。

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 	;

注意: 这里面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 分桶模式的主要内容,如果未能解决你的问题,请参考以下文章

hive分桶

Hive的分桶

Hive(10):Hive分桶表

Hive - 分桶和分区

在选择查询中使用 hive 分桶

Hive 教程-分区表与分桶表