hive建表語法和引數說明

2021-10-10 17:29:59 字數 1148 閱讀 2256

create [external] table [if not exists] table_name (

col_name data_type [comment '字段描述資訊'

]col_name data_type [comment '字段描述資訊'])

[comment '表的描述資訊'

][partitioned by (col_name data_type,...)

][clustered by (col_name,col_name,...)

][sorted by (col_name [asc|desc],...) into num_buckets buckets]

[row format row_format]

[storted as ....]

[location '指定表的路徑'

]

說明:

create table

建立乙個指定名字的表。如果相同名字的表已經存在,則丟擲異常;使用者可以用 if not exists 選項來忽略這個異常。

external

可以讓使用者建立乙個外部表,在建表的同時指定乙個指向實際資料的路徑(location),hive 建立內部表時,會將資料移動到資料倉儲指向的路徑;若建立外部表,僅記錄資料所在的路徑,不對資料的位置做任何改變。在刪除表的時候,內部表的元資料和資料會被一起刪除,而外部表只刪除元資料,不刪除資料。

comment

表示注釋,預設不能使用中文

partitioned by

表示使用表分割槽,乙個表可以擁有乙個或者多個分割槽,每乙個分割槽單獨存在乙個目錄下 .

clustered by

對於每乙個表分檔案, hive可以進一步組織成桶,也就是說桶是更為細粒度的資料範圍劃分。hive也是 針對某一列進行桶的組織。

sorted by

指定排序欄位和排序規則

row format

指定表檔案字段分隔符

storted as指定表檔案的儲存格式, 常用格式:sequencefile, textfile, rcfile,如果檔案資料是純文字,可以使用 stored as textfile。如果資料需要壓縮,使用 storted as sequencefile。

location指定表檔案的儲存路徑

Hive 資料型別和建表語法

tinyint 1byte有符號整數 20 smallint 2byte有符號整數 20 int 有符號整數 20 bigint 8byte有符號整數 20 boolean 布林型別,true或者false true false float 單精度浮點數 3.14159 double 雙精度浮點數 ...

Hive建表語法 內部表 外部表

寫語句時未被external修飾的表是內部表特點 當刪除該錶時,表的元資料也會跟著被刪除,會影響其他使用該資料的表 從以上的操作可以看出兩個表共同使用乙個資訊,如果刪除乙個表的元資料的話,hdfs上的儲存資料也會跟著刪除,導致另外的表的資料也會丟失。不加external會預設為內部表 管理表 對於一...

hive建表語法中的分隔符設定

row format delimited 分隔符設定開始語句 fields terminated by 設定欄位與字段之間的分隔符 collection items terminated by 設定乙個複雜型別 array,struct 欄位的各個item之間的分隔符 map keys termin...