hive修改表結構 表屬性

2021-08-28 05:47:30 字數 2689 閱讀 3922

0x01:重新命名表

1altertabletable_name renametonew_table_name;

上面這個命令可以重新命名表,資料所在的位置和分割槽都沒有改變。

0x02:改變列名/型別/位置/注釋

1altertabletable_name change

2[cloumn] col_old_name col_new_name column_type

3[conmment col_conmment]

4[first|aftercolumn_name];

這個命令可以修改表的列名,資料型別,列注釋和列所在的位置,first將列放在第一列,after col_name將列放在col_name後面一列,例如:

1altertabletest_table change col1 col2 string

2comment'the datatype of col2 is string'

3aftercol3;

上面的語句將列名col2修改為col2,資料型別為string並新增注釋,最後將這一列放在col3後面。

0x03:增加/更新列

1altertabletable_nameadd|replacecolumns (col_name data_type [conmment col_comment], ...);

add columns允許使用者在當前列的末尾,分割槽列之前新增新的列,replace columns允許使用者更新列,更新的過程是先刪除當前的列,然後在加入新的列。注:只有在使用native的serde時才可以這麼做。

0x04:增加表的屬性

1altertabletable_namesettblpeoperties table_properties;

使用者可以使用這個語句增加表屬性,table_properties的結構為(property_name=property_value,property_name=property_value, ...),目前last_modified_time(最後修改時間),last_modified_user(做最後修改的使用者)是由hive自動管理的。使用者可以向列中新增自己的屬性,然後使用discribe extebded table來獲取這些資訊。

0x05:增加serde屬性

1altertabletable_namesetserde serde_class_name

2[whit serdeproperties serde_properties];

1altertabletable_namesetserdeproperties serde_properties;

上面兩個命令都允許使用者想serde物件增加使用者定義的元資料。hive為了序列化和反序列化資料,將會初始化serde屬性,並將屬性傳給表的serde。這樣使用者可以為自定義的serde儲存屬性。上面serde_properties的結構為(property_name=property_value,property_name=property_value, ...)。

0x06:修改表檔案格式和組織

1altertabletable_namesetfileformat file_format;

1altertabletable_name clusteredby(col_name, col_name, ...)

2[sortedby(col_name, ...)]intonum_buckets buckets;

上面兩個命令都修改了表的物理屬性。

hive 修改表結構

在工作中,有時候會遇到老表的資料已經不能支援新的業務需求,若是重新建立乙個表來承載,稍微麻煩,若是用舊表來寫資料,就需要對舊表做調整。下面的內容就是介紹如何對hive表結構做修改 alter table old table rename to new table 修改字段,同時需要指明字段型別 al...

hive 表結構操作

簡單的建立表 create table table name id int,dtdontquery string,name string 建立有分割槽的表 create table table name id int,dtdontquery string,name string partitione...

修改表結構

add column create definition first after column name 新增新字段 add index index name index col name,新增索引名稱 add primary key index col name,新增主鍵名稱 add unique...