hive DDL语法汇总

hive DDL语法汇总

1、对表重命名

hive> ALTER TABLE table_name RENAME TO new_table_name;

 

2、修改表备注

hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment);

 

3、添加表分区

hive> ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec 
   [LOCATION  'location1' ] partition_spec [LOCATION  'location2' ] ...;
 
hive> 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' ;
 
4、对表分区进行重命名
 
hive> ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec

 

5、交换分区(0.12版本以上支持)

两个表结构必需相同,

hive> ALTER TABLE table_name_1 EXCHANGE PARTITION (partition_spec) WITH TABLE table_name_2;

 

6、删除表分区

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...]  [IGNORE PROTECTION] [PURGE];           
注意:PURGE 参数是在Hive  1.2 . 0及以后的版本才支持,加上该参数则直接删除表分区,而不是将数据放入垃圾回收站;如果没加purge参数,则删掉的分区进入回收站
 
7、恢复分区
MSCK REPAIR TABLE table_name;
 
8、归档分区
ALTER TABLE table_name ARCHIVE PARTITION partition_spec;
ALTER TABLE table_name UNARCHIVE PARTITION partition_spec;
 

9、修改列

ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];

 

例子:

CREATE TABLE test_change (a  int , b  int , c  int );
 
// First change column a's name to a1.
ALTER TABLE test_change CHANGE a a1 INT;
 
// Next change column a1's name to a2, its data type to string, and put it after column b.
ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b;
// The new table's structure is:  b int, a2 string, c int.
 
// Then change column c's name to c1, and put it as the first column.
ALTER TABLE test_change CHANGE c c1 INT FIRST;
// The new table's structure is:  c1 int, b int, a2 string.

 

10、增加列

ALTER TABLE table_name [PARTITION partition_spec]
   ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
   [CASCADE|RESTRICT]
 
hive> alter table table_name add columns(new_column_name column_type)
 
11、删除列
原表有三列(a int, b int ,c int);
hive>  ALTER TABLE test_change REPLACE COLUMNS (a int, b int)
 
注:删除列时,如果是把前面的列删除,hive只是将列名往前移,数据并没有动,这个要小心

你可能感兴趣的:(hive)