Hive(10):Hive分区表

时间:2021-07-30 01:30:18

1 分桶表的概念

分桶表也叫做桶表,源自建表语法中bucket单词。是一种用于优化查询而设计的表类型。该功能可以让数据分解为若干个部分易于管理。

在分桶时,我们要指定根据哪个字段将数据分为几桶(几个部分)。

Hive(10):Hive分区表

 

2 规则

默认规则是:

Bucket number = hash_function(bucketing_column)  mod   num_buckets 
 分桶编号      = 哈希方法(分桶字段)              取模   分桶个数

可以发现桶编号相同的数据会被分到同一个桶当中。hash_function取决于分桶字段bucketing_column的类型:

  1. 如果是int类型,hash_function(int) == int;
  2. 如果是其他类型,比如bigint,string或者复杂数据类型,hash_function比较棘手,将是从该类型派生的某个数字,比如hashcode值。

Hive(10):Hive分区表

 

Hive(10):Hive分区表