Hive中的分区和桶

hive中的分区和桶


     Hive 把表组织成“分区” Partition。 这是一种根据“分区列”(Partition column,如日期)的值对表进行粗略划分的机制,使用分区可以加快数据分片(Slice)的查询速度


     表和分区可以进一步分为“桶”(Bucket)它会为数据提供额外的结果以获得更高效率的查询处理,例如,通过根据用户ID来划分桶,我们可以早所有用户集合的随机样本上快速计算基于用户的查询。



   下面以日志文件进行考虑,日志文件中的每条记录包含一个分区,我们一般根据日期来进行分区,同一天的记录会放在相同的区中。

   分区是在创建表的时候用partition by 子句定义的,该子句需要定义列的列表

   桶的话,可以把该表分成规定的几个部分,每个部分是根据制定的列取模来决定的  下面我们就是根据ts来对4取模决定桶的

如下:



在我们把数据加载到分区表的时候,要显示的指定分区值,比如我们在目录下面有一个文件   20140418GB.txt   里面有内容


我们将该数据加载到表logs中



现在来查看HDFS结构和里面的数据

我们在eclipse中查看


但是奇怪的是,进去里面的目录我们可以看到

这里并没有出现分桶,然后我们进行数据查找,以分桶的形式



结果如下


这个结果包括了所有三个文件中,符合要求的记录

我曾单独的使用过分桶,实验显示,如果单独分桶那么将会看见所分桶的各片,但是分区和分桶一起来的话,却只能看见分区的目录


我们是不是可以这样理解,当分区和分桶一起来时,分好的区是主流,我们可以看到分区中的目录,但是分的桶,我们不再看见,结构存在,只是不显示

而我们进行查找时,就可以用上了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值