大數(shù)據(jù)離線階段08:Hive DDL其他語法
五、Hive DDL其他語法
1.Database|schema(數(shù)據(jù)庫) DDL操作
Create database
Hive中DATABASE的概念和RDBMS中類似,我們稱之為數(shù)據(jù)庫。在Hive中, DATABASE和SCHEMA是可互換的,使用DATABASE或SCHEMA都可以。
COMMENT:數(shù)據(jù)庫的注釋說明語句
LOCATION:指定數(shù)據(jù)庫在HDFS存儲位置,默認/user/hive/warehouse
WITH DBPROPERTIES:用于指定一些數(shù)據(jù)庫的屬性配置。
下面創(chuàng)建一個數(shù)據(jù)庫:itheima
create database if not exists itheima comment "this is my first db" with dbproperties ('createdBy'='AllenWoon');


注意:使用location指定路徑的時候,最好是一個新創(chuàng)建的空文件夾。
Describe database
Hive中的DESCRIBE DATABASE語句用于顯示Hive中數(shù)據(jù)庫的名稱,其注釋(如果已設置)及其在文件系統(tǒng)上的位置等信息。
DESCRIBE DATABASE/SCHEMA [EXTENDED] db_name;
EXTENDED:用于顯示更多信息。


Use database
Hive中的USE DATABASE語句用于選擇特定的數(shù)據(jù)庫,切換當前會話使用哪一個數(shù)據(jù)庫進行操作。

Drop database
Hive中的DROP DATABASE語句用于刪除(刪除)數(shù)據(jù)庫。
默認行為是RESTRICT,這意味著僅在數(shù)據(jù)庫為空時才刪除它。要刪除帶有表的數(shù)據(jù)庫,我們可以使用CASCADE。

Alter database
Hive中的ALTER DATABASE語句用于更改與Hive中的數(shù)據(jù)庫關聯(lián)的元數(shù)據(jù)。

2.Table(表)DDL操作
Describe table
Hive中的DESCRIBE table語句用于顯示Hive中表的元數(shù)據(jù)信息。
如果指定了EXTENDED關鍵字,則它將以Thrift序列化形式顯示表的所有元數(shù)據(jù)。如果指定了FORMATTED關鍵字,則它將以表格格式顯示元數(shù)據(jù)。

Drop table
DROP TABLE刪除該表的元數(shù)據(jù)和數(shù)據(jù)。如果已配置垃圾桶(且未指定PURGE),則該表對應的數(shù)據(jù)實際上將移動到.Trash/Current目錄,而元數(shù)據(jù)完全丟失。刪除EXTERNAL表時,該表中的數(shù)據(jù)不會從文件系統(tǒng)中刪除,只刪除元數(shù)據(jù)。
如果指定了PURGE,則表數(shù)據(jù)不會進入.Trash/Current目錄,跳過垃圾桶直接被刪除。因此如果DROP失敗,則無法挽回該表數(shù)據(jù)。
Truncate table
從表中刪除所有行??梢院唵卫斫鉃榍蹇毡淼乃袛?shù)據(jù)但是保留表的元數(shù)據(jù)結構。如果HDFS啟用了垃圾桶,數(shù)據(jù)將被丟進垃圾桶,否則將被刪除。
Alter table
Partition(分區(qū))DDL操作
Add partition
分區(qū)值僅在為字符串時才應加引號。位置必須是數(shù)據(jù)文件所在的目錄。
ADD PARTITION會更改表元數(shù)據(jù),但不會加載數(shù)據(jù)。如果分區(qū)位置中不存在數(shù)據(jù),查詢將不會返回任何結果。
rename partition
delete partition
可以使用ALTER TABLE DROP PARTITION刪除表的分區(qū)。這將刪除該分區(qū)的數(shù)據(jù)和元數(shù)據(jù)。
msck partition
Hive將每個表的分區(qū)列表信息存儲在其metastore中。但是,如果將新分區(qū)直接添加到HDFS(例如通過使用hadoop fs -put命令)或從HDFS中直接刪除分區(qū)文件夾,則除非用戶ALTER TABLE table_name ADD/DROP PARTITION在每個新添加的分區(qū)上運行命令,否則metastore(也就是Hive)將不會意識到分區(qū)信息的這些更改。
但是,用戶可以使用修復表選項運行metastore check命令。
MSC命令的默認選項是“添加分區(qū)”。使用此選項,它將把HDFS上存在但元存儲中不存在的所有分區(qū)添加到元存儲中。DROP PARTITIONS選項將從已經(jīng)從HDFS中刪除的metastore中刪除分區(qū)信息。SYNC PARTITIONS選項等效于調(diào)用ADD和DROP PARTITIONS。
如果存在大量未跟蹤的分區(qū),則可以批量運行MSCK REPAIR TABLE,以避免OOME(內(nèi)存不足錯誤)。
alter partition
六、Hive Show顯示語法
Show相關的語句提供了一種查詢Hive metastore的方法。可以幫助用戶查詢相關信息。