hive用户可以通过alter语句更改table属性
Alter Partitions
增加partitions:
ALTER TABLE table_name
ADD [IF NOT EXISTS]
PARTITION partition_spec [LOCATION 'location1']
partition_spec [LOCATION 'location2'] ...
partition_spec:
(partition_col = partition_col_value, partition_col = partiton_col_value, ...)
删除partitions:
ALTER TABLE table_name DROP [IF EXISTS] partition_spec, partition_spec,...
注意:
1. hive可以同时增加或者删除多个partition
2. 使用location关键字时,增加的partition以类似extend table数据的形式存在外部。
Alter Column
修改column属性(列名,列字段类型,列注释):
ALTER TABLE table_name
CHANGE [COLUMN] col_old_name col_new_name
column_type [COMMENT col_comment] [FIRST|AFTER column_name]
增加/替换column(可以使用replace来删除不需要的字段):
ALTER TABLE table_name
ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
注意:column alter仅仅修改table的元数据,而不会修改数据。
其它:
hive alter语句还支持:
1.Alter Table Properties
2.Alter SerDe Properties
3.Alter Table/Partition File Format
4.Alter Table Storage Properties
5.Alter Table/Partition Location
6.Alter Table Touch
7.Alter Table (Un)Archive
8.Alter Table/Partition Protections
9.Alter Table Rename Partition
reference:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable%2FPartitionStatements