Hive Alter Table

来源:互联网 发布:java内存限制 编辑:程序博客网 时间:2024/05/21 00:52

1:重命名表

1ALTER TABLE table_name RENAMETO new_table_name;

数据所在的位置和分区都没有改变。

2:修改表属性:

   alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE');  //内部表转外部表alter table 
   alter table table_name set TBLPROPERTIES ('EXTERNAL'='FALSE');  //外部表转内部表

3:增加/更新列

1ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [CONMMENT col_comment], ...);

ADD COLUMNS允许用户在当前列的末尾,分区列之前添加新的列,REPLACE COLUMNS允许用户更新列,更新的过程是先删除当前的列,然后在加入新的列(注:只有在使用native的SerDe时才可以这么做)。

4:改变列名/类型/位置/注释

1ALTER TABLE table_name CHANGE
2[CLOUMN] col_old_name col_new_name column_type
3[CONMMENT col_conmment]
4[FIRST|AFTER column_name];

这个命令可以修改表的列名,数据类型,列注释和列所在的位置,FIRST将列放在第一列,AFTER col_name将列放在col_name后面一列,例如:

1ALTER TABLE test_table CHANGE col1 col2 STRING
2COMMENT 'The datatype of col2 is STRING'
3AFTER col3;

上面的语句将列名col1修改为col2,数据类型为STRING并添加注释,最后将这一列放在col3后面。

5:添加分区

123Alter TABLE table_name ADD IF NOT EXISTS PARTITION (dt='20130101') LOCATION '/user/hadoop/warehouse/table_name/dt=20130101';一次添加一个分区;
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'; //一次添加多个分区

6:修改分区

12Alter TABLE table_name PARTITION (dt='2008-08-08') SET LOCATION "new location"; 
Alter TABLE table_name PARTITION (dt='2008-08-08') RENAME TO PARTITION (dt='20080808');

7:删除分区
12Alter TABLE login DROP IF EXISTS PARTITION (dt='2008-08-08'); 
Alter TABLE page_view DROP IF EXISTS PARTITION (dt='2008-08-08',country='us');

8:增加表的属性

1ALTER TABLE table_name SET TBLPEOPERTIES table_properties;

用户可以使用这个语句增加表属性,table_properties的结构为(property_name=property_value,property_name=property_value, ...),目前last_modified_time(最后修改时间),last_modified_user(做最后修改的用户)是由Hive自动管理的。用户可以向列中添加自己的属性,然后使用DISCRIBE EXTEBDED TABLE来获取这些信息。

9:增加SerDe属性

1ALTER TABLE table_name SET SERDE serde_class_name
2[WHIT SERDEPROPERTIES serde_properties];
1ALTER TABLE table_name SET SERDEPROPERTIES serde_properties;

上面两个命令都允许用户向SerDe对象增加用户定义的元数据。Hive为了序列化和反序列化数据,将会初始化SerDe属性,并将属性传给表的SerDe。这样用户可以为自定义的SerDe存储属性。上面serde_properties的结构为(property_name = property_value,property_name = property_value, ...)。

10:修改表文件格式和组织

1ALTER TABLE table_name SET FILEFORMAT file_format;
1ALTER TABLE table_name CLUSTERED BY(col_name, col_name, ...)
2[SORTED By(col_name, ...)] INTO num_buckets BUCKETS;

上面两个命令都修改了表的物理属性。


本文转自:http://blog.csdn.net/xiaolang85/article/details/21637827

参考文章:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843393.html


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大订书机卡针了怎么办 做原创的衣服该怎么办 4s店强制上牌怎么办 小孩一读书就哭怎么办 小孩上中班还哭怎么办 14岁初中生厌学怎么办 加拿大签证拒签了怎么办 离婚后不给孩子抚养费怎么办 格力空调出现e1怎么办 联想一键恢复后怎么办 微盘密码忘记了怎么办 乐高零件丢了怎么办 tpu手机壳变黄怎么办 脚被铁钉扎了怎么办 孩子性格内向不善于交际怎么办 3岁宝宝胆小怕人怎么办 焦虑症又复发了怎么办 有强迫思维的人怎么办 微信图片是黑的怎么办 玩cf老是卡屏怎么办 玩cf电脑卡屏怎么办 u盘装系统蓝屏怎么办 三星a8无限重启怎么办 旋转轮胎车翻了怎么办 轮胎卸不下来了怎么办 饥荒生病的虫洞怎么办 不小心点了暗网怎么办 苹果手机id用不了怎么办 电脑病毒杀不掉怎么办 高考信息填错了怎么办 家长不给买手机怎么办 2个月宝宝吃奶少怎么办 铅笔断在肉里怎么办 文明6金币负了怎么办 存了理财急用钱怎么办 银行开户许可证丢了怎么办 hcg值低怎么办怎么补 定期存款纸丢了怎么办 我定期存折丢了怎么办 急用钱又借不到怎么办 模拟人生4变胖了怎么办