1. 程式人生 > >hive建表(一)建立外部表

hive建表(一)建立外部表

未被external修飾的是內部表(managed table),被external修飾的為外部表(external table); 

區別:

內部表資料由Hive自身管理,外部表資料由HDFS管理; 

內部表資料儲存的位置是hive.metastore.warehouse.dir(預設:/user/hive/warehouse),外部表資料的儲存位置由自己制定; 

刪除內部表會直接刪除元資料(metadata)及儲存資料;刪除外部表僅僅會刪除元資料,HDFS上的檔案並不會被刪除; 
對內部表的修改會將修改直接同步給元資料,而對外部表的表結構和分割槽進行修改,則需要修復(MSCK REPAIR TABLE table_name;)

基礎建表語句:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

[(col_name data_type [COMMENT col_comment], ...)]

[COMMENT table_comment]

[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

[CLUSTERED BY (col_name, col_name, ...)

[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED AS file_format]

[LOCATION hdfs_path]

建表舉例:

建立外部表

create external table  if not exists plc_data

(

name string,

age int

)

row format delimited by ","

stored as textfile;