【问题标题】:How to add/edit the comment of a partitioned column in Hive table?如何在 Hive 表中添加/编辑分区列的注释?
【发布时间】:2019-09-10 12:55:21
【问题描述】:
我有一个在“part_col”列上有分区的 Hive 表,我想在“part_col”列中添加注释。
我尝试了下面的 ALTER 语句,但它不起作用并引发错误,
ALTER TABLE comment_test PARTITION (part_col) RENAME TO PARTITION (part_col string COMMENT 'new_comment');
有没有其他方法可以添加或修改 Hive 表列的分区?
【问题讨论】:
标签:
hadoop
hive
partitioning
【解决方案1】:
- 可以在创建表时将注释添加到分区列。 (如示例 [1] 所示)。
- 由于 Hive 分区设计的性质,需要在元数据数据库中添加或修改分区列的注释。
ALTER 语句可用于更改分区列的值,例如示例 [2],但不能更改分区本身的名称。
[1] 创建表时对分区的注释:
CREATE TABLE comment_test
(id STRING COMMENT 'comment1',
description STRING COMMENT 'comment2')
PARTITIONED BY (part_col STRING COMMENT 'partition_comment');
[2] 修改分区值的语句。 (不是分区列名)
ALTER TABLE comment_test
PARTITION (part_col='501') RENAME TO PARTITION (part_col='503');
[3] 创建表后查询添加/修改分区注释。 (要在 HMS 后端数据库中运行,而不是在 Hive 中运行)
UPDATE PARTITION_KEYS
SET PKEY_COMMENT='new_comment'
WHERE TBL_ID=<TBL_ID of the table of interest> ;
要获取 TBL_ID,请在 HMS 后端数据库中运行以下查询,
SELECT TBL_ID
FROM TBLS
WHERE TBL_NAME='<name of the table for which the partition change is needed>';