分区表怎样进行添加分区和重命名分区?

随着系统运行时间的增加,表的数据量会越来越大,而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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值