一:简介
分桶规则:对分桶字段值进行哈希,哈希值除以桶的个数求余,余数决定了该条记录在哪个桶中,也就是余数相同的在一个桶中。
分桶语法:创建表时使用clustered子句指定要分桶的字段和分桶的数量,也可以指定排序。
clustered by(字段名) sorted by (排序字段) into 数量 buckets
hive分桶作用:
- 方便抽样:在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便。
- 提高join查询效率: 对于JOIN操作两个表有一个相同的列,如果对这两个表都进行了桶操作。那么将保存相同列值的桶进行JOIN操作就可以,可以大大减少JOIN的数据量。
二:示例
1. 创建分桶表
create table tbl_bucket(id bigint, name string)clustered by(id) sorted by (id) into 4 bucketsrow format delimitedfields terminated by ","lines terminated by "";
2. 准备测试数据
echo "1,name12,name23,name34,nam

本文介绍了Hive分桶的概念及其作用,包括方便数据抽样和提高JOIN查询效率。通过示例详细讲解了如何创建分桶表、准备测试数据、加载数据,并对比了分桶与分区的区别。在实际操作中,注意分桶表的插入数据需借助中间表,而分区主要用于提高查询效率。
最低0.47元/天 解锁文章
3162

被折叠的 条评论
为什么被折叠?



