針對於hive 的 建庫建表操作建庫
內部表(也叫管理表和臨時表)
外部表表的操作
建庫
建立名為 test 的資料庫(僅當不存在是才建立),新增備註資訊 test database:
create database if not exists test
comment 'this is a database for test';
檢視資料庫列表(名稱模糊匹配):
show databases like 't*';
oktest
test001
time taken: 0.016 seconds,fetched: 2 row(s)
describe database 命令檢視此資料庫資訊:
describe database test;
oktest this is a database for test hdfs:// hadoop201:50070/warehouse/test.db
上述命令可見,test資料庫在hdfs上的儲存位置是 hdfs://hadoop201:50070/warehouse/test.db,開啟hadoop的 web頁面,檢視hdfs目錄。
新建資料庫的資料夾都在/hive/warehouse下面,這個是由 hive/conf/hive-site.xml檔案中 hive.metastore.warehouse.dir設定的
內部表
按照表資料的生命週期,可以將表分為內部表和外部表兩類;
內部表也叫管理表或臨時表,該型別表的生命週期時由hive控制的,預設情況下資料都存放在 /user/hive/warehouse 下面;
刪除表時資料會被刪除;
以下命令建立的計算內部表
create table t6(id int,name string)
row format delimited
fields terminated by ',';
向t6表新增一條記錄:
insert into t6 values(101,'a101');
使用hadoop命令檢視 hdfs, 可見 t6 表有對應的資料夾,裡面的檔案儲存著該錶資料
(base) xx@:$hadoop fs -ls /warehouse/bingou
found 4 items
drwxr-xr-x - xubin supergroup 0 2020-11-20 15:21 /warehouse/bingou/dwd
drwxr-xr-x - xubin supergroup 0 2020-11-25 18:20 /warehouse/bingou/dws
drwxr-xr-x - xubin supergroup 0 2020-11-24 16:14 /warehouse/bingou/dwt
drwxr-xr-x - xubin supergroup 0 2020-11-26 11:26 /warehouse/bingou/ods
檢視這個資料夾下的檔案資訊,也就是表資料:
(base) xubin@:$hadoop fs -cat /warehouse/bingou/ods/ods_start_log/dt=2020-11-14/startlog-.1605318076716
執行命令 drop table 表名, 再次檢視相關表對應檔案下的資料,發現整個資料夾都不存在了
外部表
建立表的sql語句中加上 external,建立的就是外部表了;
外部表的資料生命週期不受 hive 控制;
刪除外部表的時候不會刪除資料;
外部表的資料,可以同時作為多個外部表的資料來源共享使用;
接下來開始實踐,下面是建表語句:
create external table t7(id int, name string)
row format delimited
fields terminated by ','
location '/data/external_t7';
檢視 hdfs檔案,再刪除drop t7,再檢視檔案是否存在,發現存在,因此,在實際生產業務系統開發中
hive外部表和內部表
1.內部表指hive建立並通過load data inpath進資料庫的表,這種表可以理解為資料和表結構都儲存在一起的資料表。當你通過drop table table name 刪除元資料中表結構的同時,表中的資料也同樣會從hdfs中被刪除。sql view plain copy create ta...
Hive內部表和外部表
總結一下hive的內部表和外部表以及兩者的區別。平時建立的普通表為內部表 create table test internal id string comment id name string comment 名字 comment 測試內部表 row format delimited fields ...
Hive 外部表和內部表
外部表說明 外部表因為是指定其他的hdfs路徑的資料載入到表當中來,所以hive表會認為自己不完全獨佔這份資料,所以刪除hive表的時候,資料仍然存放在hdfs當中,不會刪掉 管理表和外部表的使用場景 操作案例 分別建立老師與學生表外部表,並向表中載入資料 建立老師表 create external...