Hive DDL(Data Definition Language)之修改表
2016-12-12 02:09
666 查看
修改表
具体用法请查看官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL继续沿用DDL之创建表中的t_worker表进行操作。
[b]Rename Table[/b]
ALTER TABLE table_name RENAME TO new_table_name;
Alter Table Properties
ALTER TABLE table_name SET TBLPROPERTIES table_properties;
table_properties:
(property_name = property_value, property_name = property_value, … )
未修改表为外部表前:此时表为内部表
将表属性改为外部表:
若需要将外部表改为内表:alter table table_name set tblproperties (‘EXTERNAL’ = ‘FALSE’);
分区相关
创建分区create table if not exists t_emp( name string, age int) partitioned by (country string, city string) row format delimited fields terminated by '\t' stored as textfile;
Add Partitions
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION ‘location1’] partition_spec [LOCATION ‘location2’] …;
partition_spec:
(partition_column = partition_col_value, partition_column = partition_col_value, …)
注意:当我们手动在hdfs上创建分区时,hive是不会显示出分区的
Drop Partitions
ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, …]
example:alter table t_emp drop partition(country=’France’);
保护分区表数据不被删除
alter table table_name partition(partition_spec, …) enable no_drop;
将受保护的分区变为可删除
alter table table_name partition(partition_spec, …) disable no_drop;
使某分区数据不被查询(这会使得全表扫描,和聚合函数都不可执行)
alter table table_name partition(partition_spec, …) enable offline;
解除不能被查询的分区
alter table table_name partition(partition_spec, …) disable offline;
Add/Replace Columns
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], …)
注:ADD是代表新增一字段,字段位置在所有列后面(partition列前),REPLACE则是表示替换表中所有字段。
相关文章推荐
- Hive 5、Hive 的数据类型 和 DDL Data Definition Language) Hive DML(Data Manipulation Language)
- 数据定义语句(DDL,Data definitionlanguage)
- Hive Data Definition Language
- Oracle数据库 —— SQL之ddl(Data definition language)语句
- SQL教程:数据定义 DDL(Data Definition Language)
- 如何用Visio來做正向工程產生 DDL (Data Definition Language)
- DDL(Data Definition Language)语句 on Oracle
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库(一)
- MySQL部分DDL(数据库定义语言(Data Definition Language)),MySQL数据库表中字段的数据类型
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)
- Mysql数据库定义语言DDL(DataDefinition Language)
- Hive Data Definition Language
- MySql(2)------SQL基础之DDL(Data Definition Language)
- mysql数据库导入和导出,删除和创建(ddl)(data definition language)
- DDL(Data Definition Language)触发器实现数据库版本控制
- DDL(data definition language)
- sql基础之DDL(Data Definition Languages)
- mysql(ddl)(data defininition language)