未被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;
Hive建立外部表
hive建立外部表 1.環境需求 hadoop 2.6.0 hive 1.2.1 hue 3.7.0 2.開發過程 1 建立hdfs目錄 hadoop dfs mkdir wy input 2 上傳本地資料到hdfs中 hadoop dfs put usr wy writing.txt wy inp...
HIVE建立外部表
基礎建表語句 create external table if not exists table name col name data type comment col comment comment table comment partitioned by col name data type c...
Hive建表語法 內部表 外部表
寫語句時未被external修飾的表是內部表特點 當刪除該錶時,表的元資料也會跟著被刪除,會影響其他使用該資料的表 從以上的操作可以看出兩個表共同使用乙個資訊,如果刪除乙個表的元資料的話,hdfs上的儲存資料也會跟著刪除,導致另外的表的資料也會丟失。不加external會預設為內部表 管理表 對於一...