表
1、重命名表重命名表的語句如下:
ALTER TABLE table_name RENAME TO new_table_name
2、修改表屬性:
ALTER TABLE table_name SET TBLPROPERTIES (property_name = property_value, property_name = property_value,... )
3、修改表注釋:
ALTER TABLE table_name SET TBLPROPERTIES('comment' = new_comment);
列
1、添加列
-- Add/Replace Columns 語法 ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) --【注】ADD COLUMNS 允許用戶在當前列的末尾增加新的列,但是在分區列之前。 -- 將 a 列的名字改為 a1,a 列的數據類型改為 string,並將它放置在列 b 之后。 ALTER TABLE test_change CHANGE a a1 STRING AFTER b; -- 將 b 列的名字修改為 b1, 並將它放在第一列。 ALTER TABLE test_change CHANGE b b1 INT FIRST 注意:對列的改變只會修改Hive的元數據,而不會改變實際數據。用戶應該確定保證元數據定義和實際數據結構的一致性。
2、修改列
--- Change Column Name/Type/Position/Comment 語法 ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] --- Change Column Name/Type/Position/Comment 案例 CREATE TABLE test_change (a int, b int, c int); ALTER TABLE test_change CHANGE a a1 INT; --將 a 列的名字改為 a1. --將 a 列的名字改為 a1,a 列的數據類型改為 string,並將它放置在列 b 之后。新的表結構為: b int, a1 string, c int. ALTER TABLE test_change CHANGE a a1 STRING AFTER b; --將 b 列的名字修改為 b1, 並將它放在第一列。新表的結構為: b1 int, a string, c int. ALTER TABLE test_change CHANGE b b1 INT FIRST;
分區
1、增加分區
--Add Partitions 語法 ALTER TABLE table_name ADD partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ... partition_spec: : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...) --Add Partitions 語法案例:用戶可以用 ALTER TABLE ADD PARTITION 來向一個表中增加分區。當分區名是字符串時加引號。 ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' PARTITION (dt='2008-08-09', country='us') location '/path/to/us/part080809';
2、刪除分區
---DROP PARTITION 刪除分區
ALTER TABLE table_name DROP
partition_spec, partition_spec,...
Reference:
https://www.jianshu.com/p/9088fe002e2a Hive 修改table、column