Hive 分桶

Hive 分桶

Hive中的分桶是一种数据组织技术。它类似于Hive中的分区,但额外提供了将大型数据集分割为更易管理的部分(称为分桶)的功能。因此,当分区实现变得困难时,我们可以在Hive中使用分桶。然而,我们也可以进一步将分区划分为分桶。

Hive中分桶的工作原理

Hive 分桶

  • 桶的概念基于哈希技术。
  • 在这里,计算当前列值的模和所需桶的数量(假设为F(x) % 3)。
  • 现在,根据得到的值,数据被存储到相应的桶中。

在Hive中的桶选示例

  • 首先,选择要在其中创建表的数据库。
hive> use showbucket;

Hive 分桶

  • 创建一个虚拟表来存储数据。
hive> create table emp_demo (Id int, Name string , Salary float)  
row format delimited  
fields terminated by ',' ; 

Hive 分桶

  • 现在,将数据加载到表中。
hive> load data local inpath '/home/codegyani/hive/emp_details' into table emp_demo;

Hive 分桶

  • 使用以下命令启用桶分配:
hive> set hive.enforce.bucketing = true;
  • 使用以下命令创建一个分桶表: –
hive> create table emp_bucket(Id int, Name string , Salary float)  
clustered by (Id) into 3 buckets
row format delimited  
fields terminated by ',' ;  

Hive 分桶

  • 现在,将虚拟表的数据插入到桶化表中。
hive> insert overwrite table emp_bucket select * from emp_demo; 

Hive 分桶

  • 在这里,我们可以看到数据被分成了三个存储桶。

Hive 分桶

  • 让我们检索存储桶0的数据。

Hive 分桶

根据哈希函数: 6%3=0 3%3=0 因此,这些列存储在桶 0 中。

  • 让我们检索桶 1 的数据。

Hive 分桶

  • 让我们检索桶2的数据。

Hive 分桶

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程