Hive中如何創建內部表和外部表以及它們的區別


1.內部表(也稱爲管理表)的創建:

create table if not exists student(
id int,
name string,
age int
)
row  format delimited fields terminated by '\t';

//加載HDFS文件到Hive表中
load data inpath '/home/user/hive.txt' into table dept;


if not exists 可加可不加

//用來指定原文件的列分隔符
row  format delimited fields terminated by '\t';
load 如果操作的HDFS上的文件,代表着會移動或者剪切文件


desc formatted dept;  //描述表結構信息
Location:           hdfs://com.qiyu02:8020/user/hive/warehouse/person.db/student  
Table Type:         MANAGED_TABLE


2.外部表的創建

create  external table emp(
empno int,
empname string,
empjob string,
mgno int,
birthday string,
salary float,
bonus float,
depno int
)
row  format delimited fields terminated by '\t'
location '/input/demo';
//描述表結構
desc formatted emp;
Location:           hdfs://com.qiyu02:8020/input/demo  
Table Type:         EXTERNAL_TABLE 



內部表和外部表的區別:
創建表
外部表創建表的時候,不會移動數到數據倉庫目錄中(/user/hive/warehouse),只會記錄表數據存放的路徑
內部表會把數據複製或剪切到表的目錄下


刪除表
外部表在刪除表的時候只會刪除表的元數據信息不會刪除表數據
內部表刪除時會將元數據信息和表數據同時刪除
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章