Hive的使用之分桶表

本文介绍了Hive的分桶表概念及其优势,包括提升查询效率和便于数据采样。通过使用CLUSTERED BY、SORTED BY和INTO设置分桶,确保数据均匀分布。在数据导入时,应注意启用hive.enforce.bucketing以强制执行分桶,并通过insert select语句处理文本数据以保持分桶结构。
摘要由CSDN通过智能技术生成

Hive分桶
分桶是将数据分解成更容易管理的若干部分的一个技术,比分区有着更为细粒度的数据范围划分.
为什么要进行分桶呢?

1**. 利用分桶表,我们能获得更高效的查询处理效率.**
当分区数量过于庞大以至于可能导致文件系统崩溃时,或者我们找不到合理的分区字段时,可以考虑使用分桶表来解决问题.
同时,分区与分桶并不冲突,可以对分区后的数据进一步进行分桶.分区针对的是对文件的存储路径进行划分,进而分成一个个不同的文件夹,这样的数据是容易造成数据倾斜的.而分桶的原理是按照哈希值对数据打散,并分发到各个不同的桶中从而完成数据的分桶过程,数据分布比较均匀.
注意,hive使用对分桶所用的值进行hash,并用hash结果除以桶的个数做取余运算的方式来分桶,保证了每个桶中都有数据,但每个桶中的数据条数不一定相等。
如果另外一个表也按照同样的规则分成了一个个小文件。两个表join的时候,就不必要扫描整个表,只需要匹配相同分桶的数据即可,从而提升效率。
在数据量足够大的情况下,分桶比分区有更高的查询效率。
在这里插入图片描述
2. 数据的采集
在真实的大数据分析过程中,由于数据量较大,开发和自测的过程比较慢,严重影响系统的开发进度。此时就可以使用分桶来进行数据采样。采样使用的是一个具有代表性的查询结果而不是全部结果,通过对采样数据的分析,来达到快速开发和自测的目的,节省大量的研发成本。

具体的操作:

1**. 创建分桶表**


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值