修改属性
分区操作
创建分区表
添加分区
修改分区值
注意
只会在元数据中修改,不会同步修改HDFS路径吗,如:
原分区路径为: /user/hive/warehouse/test.db/test_table/month=201910 ,分区名:
month='201910'
将分区名修改为: 201911 后,分区所在路径不变,依旧
是: /user/hive/warehouse/test.db/test_table/month=201910
如果希望修改分区名后,同步修改HDFS的路径,并保证正常可用,需要:
在元数据库中: 找到SDS表 -> 找到LOCATION列 -> 找到对应分区的路径记录进行修改
如将记录的: /user/hive/warehouse/test.db/test_table/month=201910 修改
为: /user/hive/warehouse/test.db/test_table/month=201911
在HDFS中,同步修改文件夹名
ALTER TABLE tbl SET TBLPROPERTIES(key=value);
-- 常用属性
("EXTERNAL"="TRUE") -- 内外部表,TRUE表示外部表
('comment' = new_comment) -- 修改表注释
-- 其余属性参见
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDD
L-listTableProperties
-- 分区表示意
CREATE TABLE test_ext(id int) COMMENT 'partitioned table' PARTITION BY(year string,
month string, day string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
ALTER TABLE tablename ADD PARTITION (partition_key='partition_value', ......);
ALTER TABLE tablename PARTITION (partition_key='old_partition_value') RENAME TO
PARTITION (partition_key='new_partition_value');