Hadoop教程
HBase
Hive
Pig
Sqoop
Spark

Hive 分区

在Hive中进行分区是指根据特定列的值(例如日期,课程,城市或国家/地区)将表分为几个部分。分区的优势在于,由于数据存储在切片中,因此查询响应时间变得更快。
我们知道Hadoop用于处理大量数据,因此始终需要使用Hadoop。最好的处理方法。 Hive中的分区就是最好的例子。
让我们假设我们有一个在一所大学学习的1000万学生的数据。现在,我们必须获取特定课程的学生。如果使用传统方法,则必须遍历整个数据。这导致性能下降。在这种情况下,我们可以采用更好的方法,即在Hive中进行分区,然后根据特定列在不同的数据集中划分数据。
在Hive中进行分区可以通过两种方式执行-
静态分区 动态分区

静态分区

在静态或手动分区中,需要在将数据加载到表中时手动传递分区列的值。因此,数据文件不包含分区列。
静态分区示例
首先,选择我们要在其中创建表的数据库。
hive> use test;
使用以下命令创建表并提供分区的列:-
hive> create table student (id int, name string, age int,  institute string) 
partitioned by (course string)
row format delimited
fields terminated by ',';

在Hive中进行分区 让我们检索与表关联的信息。
hive> describe student;

在Hive中进行分区 使用以下命令将数据加载到表中并传递分区列的值:-
hive> load data local inpath '/home/codegyani/hive/student_details1' into table student
partition(course= "java");  

在Hive中进行分区
在这里,我们正在根据课程对学院的学生进行划分。
使用以下命令将另一个文件的数据加载到同一表中,并将分区列的值传递给它:-
hive> load data local inpath '/home/codegyani/hive/student_details2' into table student
partition(course= "hadoop");

在Hive中进行分区
在下面的屏幕截图中,我们可以看到table student被分为两类。
在Hive中进行分区 让我们使用以下命令来检索功能的全部数据:-
hive> select * from student;

在Hive中进行分区 现在,尝试使用以下命令检索基于分区列的数据:-
hive> select * from student where course="java";

在Hive中进行分区
在这种情况下,我们不检查整个数据。因此,这种方法可以缩短查询响应时间。
我们还使用以下命令来检索另一个分区数据集的数据:-
hive> select * from student where course= "hadoop";

在Hive中进行分区
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4