Hive Alter Table
来源:互联网 发布:java内存限制 编辑:程序博客网 时间:2024/05/21 00:52
1:重命名表
1
ALTER
TABLE
table_name RENAME
TO
new_table_name;
数据所在的位置和分区都没有改变。
2:修改表属性:
alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE'); //内部表转外部表alter table
alter table table_name set TBLPROPERTIES ('EXTERNAL'='FALSE'); //外部表转内部表
3:增加/更新列
1
ALTER
TABLE
table_name
ADD
|
REPLACE
COLUMNS (col_name data_type [CONMMENT col_comment], ...);
ADD COLUMNS允许用户在当前列的末尾,分区列之前添加新的列,REPLACE COLUMNS允许用户更新列,更新的过程是先删除当前的列,然后在加入新的列(注:只有在使用native的SerDe时才可以这么做)。
4:改变列名/类型/位置/注释
1
ALTER
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后面一列,例如:
1
ALTER
TABLE
test_table CHANGE col1 col2 STRING
2
COMMENT
'The datatype of col2 is STRING'
3
AFTER
col3;
上面的语句将列名col1修改为col2,数据类型为STRING并添加注释,最后将这一列放在col3后面。
5:添加分区
1
2
3
Alter 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:修改分区
1
2
Alter 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');
1
2
Alter 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:增加表的属性
1
ALTER
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属性
1
ALTER
TABLE
table_name
SET
SERDE serde_class_name
2
[WHIT SERDEPROPERTIES serde_properties];
1
ALTER
TABLE
table_name
SET
SERDEPROPERTIES serde_properties;
上面两个命令都允许用户向SerDe对象增加用户定义的元数据。Hive为了序列化和反序列化数据,将会初始化SerDe属性,并将属性传给表的SerDe。这样用户可以为自定义的SerDe存储属性。上面serde_properties的结构为(property_name = property_value,property_name = property_value, ...)。
10:修改表文件格式和组织
1
ALTER
TABLE
table_name
SET
FILEFORMAT file_format;
1
ALTER
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
- Hive Alter Table
- hive alter table (删除某一列)语句
- hive中alter table的用法详解
- hive中alter table的用法详解
- Hive(七)--删除列alter table
- hive alter table (删除某一列, 增加列)语句
- alter table
- ALTER TABLE
- Alter Table
- Alter table
- alter table
- ALTER TABLE
- alter table
- alter table
- ALTER TABLE
- ALTER TABLE语句
- ALTER TABLE语法--mysql
- MySQL - ALTER TABLE语法
- UIViewContentMode 图片显示模式
- python ConfigParser模块详解
- RxJava----简介
- sysctl.conf中文参数指南
- win7iis配置
- Hive Alter Table
- 谨防raid数据丢失不当操作及raid数据恢复方法
- 谈谈java的"=="和equals
- Git常用命令和Git团队使用规范指南
- 关于宏的一些问题,和__LINE__,__FILE__一些编辑器默认宏
- Spring体系知识点IOC,AOP
- 数据类型 oc
- 版本更新
- Java经典算法大全