更新時(shí)間:2023-03-23 來源:黑馬程序員 瀏覽量:
臨時(shí)表是Hive數(shù)據(jù)表的一種特殊形式,臨時(shí)表只對(duì)當(dāng)前會(huì)話可見,數(shù)據(jù)被存儲(chǔ)在用戶的臨時(shí)目錄,并在會(huì)話結(jié)束時(shí)刪除。接下來,在虛擬機(jī) Node_03中使用Hive客戶端工具Beeline,遠(yuǎn)程連接虛擬機(jī)Node_02的 HiveServer2服務(wù)操作Hive,在數(shù)據(jù)庫(kù)hive_database中創(chuàng)建臨時(shí)表temporary_table,具體命令如下。
CREATE TEMPORARY TABLE hive_database.temporary_table く name STRING, age int, gender STRING ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS textfile TBLPROPERTIES("comment"="This is a temporary table");
上述命令執(zhí)行完成后,在Hive客戶端工具Beeline中執(zhí)行“DESC FORMATTED temporary_table;"命令,查看數(shù)據(jù)庫(kù)
hive_database中臨時(shí)表 temporary_table 的表結(jié)構(gòu)信息,如圖所示。
臨時(shí)表temporary_table的表結(jié)構(gòu)信息
臨時(shí)表temporary_table在HDFS的數(shù)據(jù)存儲(chǔ)路徑為/tmp_local/hive/root目錄中,該路徑中/tmp_local/hive為Hive配置文件中參數(shù) hive.exec.scratchdir指定的臨時(shí)目錄,/root是根據(jù)當(dāng)前用戶名root創(chuàng)建的目錄。在Hive客戶端工具Beeline中執(zhí)行“!table”命令退出當(dāng)前會(huì)話,再次使用Hive客戶端工具Beeline,在虛擬機(jī)Node_03中遠(yuǎn)程連接虛擬機(jī)Node_02的HiveServer2服務(wù)時(shí),會(huì)發(fā)觀數(shù)據(jù)庫(kù) hive_database中已經(jīng)不存在臨時(shí)表temporary_table。
注意:
(1)臨時(shí)表不支持分區(qū),不能基于CREATETABLE句式創(chuàng)建臨時(shí)分區(qū)表。
(2)臨時(shí)表不支持索引。
(3)臨時(shí)表是數(shù)據(jù)表的一種展現(xiàn)形式,因此針對(duì)數(shù)據(jù)表的操作同樣可以應(yīng)用于臨時(shí)表。
(4)如果同一數(shù)據(jù)庫(kù)中的臨時(shí)表與非臨時(shí)表名稱一致,那么此會(huì)話內(nèi)任何操作都會(huì)被解析為臨時(shí)表的操作,用戶將無法訪問同名的非臨時(shí)表。