首页技术文章正文

分区表如何添加分区和重命名分区?

更新时间:2023-07-21 来源:黑马程序员 浏览量:

IT培训班

随着系统运行时间的增加,表的数据量会越来越大,而Hive查询数据通常是使用全表扫描,这会导致对大量不必要数据的扫描,从而降低查询效率。为了解决这一问题,Hive引进了分区技术,分区主要是将表的整体数据根据业务需求,划分成多个子目录进行存储,每个子目录对应一个分区。通过扫描分区表中指定分区的数据,避免Hive全表扫描,从而提升Hive查询数据的效率。本节针对Hive的分区表进行详细讲解。

添加分区是在分区表中根据分区字段添加实际分区,语法格式如下。

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION
(partition_column ▪ partition_col_value,
partition_column ▪ partition_col_value, ...)
[LOCATION 'location']...;
上述语法的具体讲解如下。

·ALTERTABLE:表示修改数据表结构信息的语句。

·ADD[IFNOT EXISTS]PARTITION:用于添加分区,其中IF NOT EXISTS为可选,用于判断添加的分区是否存在。

·partition_column:用于指定分区字段。

·prtition_col_value:用于指定分区字段的值,即实际分区。

·LOCATION'location':可选.用于指定分区在HDFS上的存储位置。

接下来,在虚拟机Node_03中使用Hive客户端工具Beeline,远程连接虚拟机Node_02的HiveServer2服务操作Hive,向数据库hive_database的分区表partitioned_table添加分区,具体命令如下。

ALTER TABLE hive_database.partitioned_table
ADD PARTITION (province= 'HeBei', city= 'HanDan')
location 
'/user/hive_local/varehouse/hive_database.db/HeBei'
PARTITION (province='ShanDong', city= 'JiNan')
location '/user/hive_local/varehouse/hive_database.db/ShanDong';

上述命令在数据库hive_database的分区表partitioned_table中添加了两个二级分区,分别是province=HeBei/city=HanDan和province=ShanDong/city=JiNan。

上述命令执行完成后,在Hive客户端工具Beeline中执行“SHOW PARTITIONS hive_database.partitioned_table:”命令.查看数据库hive_database中分区表partitioned_table的分区信息,如图所示。

1689928394072_分区.png

从图可以看出,分区表partitioned_table中成功添加了两个二级分区,分别是province=HeBei/city=HanDan和province=ShanDong/city=JiNan。

重命名分区是根据分区表的分区字段修改分区表的实际分区,重命名分区的语法格式如下。

ALTER TABLE table_name PARTITION
(partition_column = 
partition_col_value,
partition_column= partition_col_value,)  _
RENAME TO PARTITION (partitfon_colutn = pArtition_col_value,
partition_column ▪ 
partition_col_value, ..);

接下来,在虚拟机Node_03中使用Hive客户端工具Beeline,远程连接虚拟机Node_02的HiveServer2服务操作Hive.重命名数据库hive_database中分区表partitioned_table的分区,具体命令如下。

ALTER TABLE hive_database.partitioned_table PARTITION
(province='HeBei', city='HanDan')
REMAME TO PARTITION (Province= 'HuBei', city='WuHan');

上述命令将分区表partitioned_table的二级分区province=HeBei/city=HanDan重命名为province=HuBei/city=WuHan。

上述命令执行完成后,在Hive客户端工具Beeline中执行“SHOW PARTITIONS hive_database.partitioned_table;"命令,查看数据库hive_database中分区表partitioned_table的分区信息,如图所示。

从图中可以看出,分区表partitioned_table的二级分区 province=HeBei/city=HanDan 成功重命名为province=HuBei/city=WuHan。

1689928672277_分区信息.png

分享到:
在线咨询 我要报名
和我们在线交谈!