Hive修改表语句
1.ALTER TABLE table_name RENAME TO new_table_name;
上面这个命令可以重命名表,数据所在的位置和分区都没有改变。
2:改变列名/类型/位置/注释
1.ALTER TABLE table_name CHANGE[CLOUMN] col_old_name col_new_name column_type[CONMMENT col_conmment][FIRST|AFTER column_name];
这个命令可以修改表的列名,数据类型,列注释和列所在的位置,FIRST将列放在第一列,AFTER col_name将列放在col_name后面一列,例如:
1.ALTER TABLE test_table CHANGE col1 col2 STRING COMMENT 'The datatype of col2 is STRING'
AFTER col3;
上面的语句将列名col2修改为col2,数据类型为STRING并添加注释,最后将这一列放在col3后面。
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 SET TBLPEOPERTIES table_properties;
用户可以使用这个语句增加表属性,table_properties的结构为(property_name=property_value,property_name=property_value, …),目前last_modified_time(最后修改时间),last_modified_user(做最后修改的用户)是由Hive自动管理的。用户可以向列中添加自己的属性,然后使用DISCRIBE EXTEBDED TABLE来获取这些信息。
5:增加SerDE属性
1.ALTER TABLE table_name SET SERDE serde_class_name[WHIT SERDEPROPERTIES serde_properties];
2.ALTER TABLE table_name SET SERDEPROPERTIES serde_properties;
上面两个命令都允许用户想SerDE对象增加用户定义的元数据。Hive为了序列化和反序列化数据,将会初始化SerDE属性,并将属性传给表的SerDE。这样用户可以为自定义的SerDe存储属性。上面serde_properties的结构为(property_name=property_value,property_name=property_value, …)。
6:修改表文件格式和组织
1.ALTER TABLE table_name SET FILEFORMAT file_format;
2.ALTER TABLE table_name CLUSTERED BY (col_name, col_name, ...)
[SORTED By (col_name, ...)] INTO num_buckets BUCKETS;
上面两个命令都修改了表的物理属性。
上一篇: 支付表结构
下一篇: mysql数据库表数据导出与导入
推荐阅读
-
SQL学习笔记——表结构的修改
-
Hive修改表语句
-
Oracle查询表结构建表语句索引等
-
oracle 使用sql语句向表中添加字段
-
运维工程师常用的Oracle经典语句——4.使用命令查看Oracle数据库编码、存储过程、所有的表及表结构等信息
-
同时修改某一个数据库中所有表的所有字段的编码格式(mysql)
-
hive 创建/删除/截断 表(翻译自Hive wiki) 博客分类: hadoop
-
[一起学Hive]之九-Hive的查询语句SELECT 博客分类: hive hive一起学HiveHive SELECT
-
[一起学Hive]之十三-Hive整合HBase,操作HBase表 博客分类: hive hivehive整合hbase
-
[一起学Hive]之三—Hive中的数据库(Database)和表(Table) 博客分类: hive hivehive数据库和表