Hive學習之更改表的屬性

loveheping發表於2018-01-08
1、修改表名
    alter table table_name rename to new_table_name;
    例1:alter table ruoze_emp rename to emp;
2、修改列名
    alter table tablename change column column_orign column_new int(修改後列的屬性) comment 'column_name'
    after severity;//可以把該列放到指定列的後面,或者使用‘first’放到第一位
    將表tablename中的列column_orign修改成column_new,同時指定修改後的列名稱的屬性,comment是這個列的註釋
    例1:alter table emp change column age uage double comment 'column age' after id;
3、增加列
    alter table tablename add columns(column1 string comment 'xxxx',column2 long comment 'yyyy')
    例1:alter table emp add columns(age int);
4、替換表
    ALTER TABLE table_name [PARTITION partition_spec] ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT]                         -- (Note: Hive 1.1.0 and later)
    例1:ALTER TABLE emp REPLACE COLUMNS (age int, uage int);
5、檢視錶的屬性
    desc formatted tablename;
6、修改表的屬性
    (1)alter table table_name set tblproperties('property_name'='new_value');
       將table_name表中的comment屬性值修改成'new_value';
    (2)alter table emp set serdeproperties ("field.delim"="\t");
       將表table_name中的欄位分割符修改成'\t',注意,這是在表沒有分割槽的情況下
    例1:create table emp(id int,uname string)row format delimited fields terminated by '#' lines terminated by '\n' stored as textfile;
       alter table emp set serdeproperties('field.delim'='\t');這條語句將t8表中的欄位分隔符'#'修改成'\t';
    例2:create table emp(id int,uname string) partitioned by(dt=string) row foramt delimited fields terminated by '\n' stored as textfile;
       alter table emp partition(dt='20180108') set serdeproperties('field.delim=\t');
    (3)alter table table_name[partition] set location 'path'
       alter table emp set TBLPROPERTIES('EXTERNAL'='TRUE');//內部錶轉化成外部表
       alter table emp set TBLPROPERTIES('EXTERNAL'='FALSE');//外部錶轉成內部表

    注意:由於emp預設是內表,所以在刪除表emp時,它的資料包括檔案目錄全部被刪除,為了防止這種情況發生,可以將表emp修改成外表,
    透過語句:alter table emp set tblproperties('EXTERNAL'='TRUE');同樣也可以將外部表修改為內部表,
    可以透過語句:alter table city set tblproperties('EXTERNAL'='FALSE');
    (4)其他修改表屬性的命令:
       alter table properties; alter serde properties;
       alter table/partition file format;
       alter table storage properties;
       alter table rename partition;
       alter table set location;
    詳細說明可以參考:Hive官網,在官網中找:wiki LanguageManual DDL()來查詢詳細介紹

若澤大資料交流群:671914634

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31511218/viewspace-2149885/,如需轉載,請註明出處,否則將追究法律責任。

相關文章