Hadoop教程
HBase
Hive
Pig
Sqoop
Spark

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中进行装箱
在Hive中进行装箱 在这里,我们可以看到数据分为三个存储桶。 在Hive中装桶 让我们检索存储区0的数据。 在Hive中装桶
根据哈希函数:
6%3 = 0
3%3 = 0
因此,这些列存储在存储区0中。
让我们检索存储桶1的数据。 在Hive中装桶
根据哈希函数:
7%3 = 1
4%3 = 1
1%3 = 1
因此,这些列存储在存储区1中。
让我们检索存储桶2的数据。 在Hive中装箱
根据哈希函数:
8%3 = 2
5%3 = 2
2%3 = 2
因此,这些列存储在存储区2中。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4