您好,登錄后才能下訂單哦!
小編給大家分享一下Hive如何創建、拷貝、列舉和刪除表,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Hive表操作一
*文本文件
-CSV:以逗號分隔的文本文件
-TSV:以制表符分隔的文本文件
這兩種文件格式Hive都支持,但是有個缺點就是用戶要對文本文件中那些不需要作為分隔符處理的逗號或者制表符格外小心
*創建表
CREATE TABLE語句遵循SQL語法慣例,但比較靈活,可定義表的數據文件存儲在什么位置,使用什么存儲格式等
eg:CREATE TABLE IF NOT EXISTS tmp.table1(
userId string COMMENT '用戶ID',
name string COMMENT '用戶姓名',
createtime string COMMENT '創建時間'
)
COMMENT '用戶表'
TBLPROPERTIES ('creator'='yy', 'created_at'='2018-07-23 20:00:00', ...)
LOCATION '/user/hive/warehouse/tmp/table1';
對以上語句分析:
1.如果用戶當前數據庫不是要建表的目標數據庫,可以在表明前增加庫名來進行指定tmp.table1
2.增加 IF NOT EXISTS,若表存在,Hive會忽略后面的建表語句,而且不會有提示,所以第一次建表 IF NOT EXISTS 會有用
3.但需要注意是的,如果已存在的表和這個表模式不一樣,Hive不會做出提示,如果要用新表模式需刪除原表,然后重新建表。或者修改原表。
4.一般情況下,TBLPROPERTIES的主要作用是按鍵值對格式為表增加額外的說明文檔
SHOW TBLPROPERTIES table_name命令,用于列出表的TBLPROPERTIES屬性信息
5.Hive建表時會自動增加兩個屬性:last_modified_by(保存最后修改這個表的用戶的用戶名)
last_modified_time(保存最后一次修改的時間)
6.LOCATION指定一個存儲路徑,這個例子我們使用了默認路徑,Hive默認將創建的表的目錄放置在該表所屬數據庫后
但defult庫是個例外,他在/user/hive/warehouse下沒有對應庫目錄,所以defult庫中的表目錄直接位于/user/hive/warehouse目錄后(明確指定例外)
*拷貝表(只拷貝表模式,不拷貝數據)
eg: CREATE TABLE IF NOT EXISTS tmp.table2 LIKE tmp.table1;
*列舉表
--在該庫下列舉該庫下的所有表
eg:hive >USE tmp;
hive > SHOW TABLES;
table1
table2
table3
--不在該庫下列舉該庫下的所有表
eg:hive >USE default;
hive > SHOW TABLES IN tmp;
table1
table2
table3
注:上周提到過的使用正則表達式查詢和 IN databas_name ,這兩個功能不支持同時使用
*刪除表
eg:DROP TABLE IF EXISTS table1;
對于內部表,表的元數據信息和表內的數據都會被刪除
對于外部表,表的元數據信息會被刪除,但是表中的數據不會被刪除
看完了這篇文章,相信你對“Hive如何創建、拷貝、列舉和刪除表”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。