Hive中的數據庫
創建數據庫的語句:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
說明:
1. 在所有的數據庫的相關的命令裏面DataBase都可以被替換成Schema
2. COMMENT,爲database增加一個描述信息
3. Location,默認的情況下,hive數據庫中的表的數據存儲在hive.metastore.warehouse.dir
指定的目錄下
其默認值爲:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
4. with dbproperties,用於爲數據庫增加一些和其相關的鍵值對屬性信息,例如創建的時間,作者等
案例
hive> create database db01
> comment 'this is the first hive db'
> location '/db/01'
> with dbproperties('actuor'='jyw','date'='2017-6-11');
查看數據庫信息的語句
DESCRIBE DATABASE [EXTENDED] database_name
說明
EXTENDED,會顯示在創建數據庫時指定的dbproperties信息,不使用則不包含
案例
hive> describe database db01;
db01 this is the first hive db hdfs://bigdata02:9000/db/01 hadoop USER
hive> describe database extended db01;
db01 this is the first hive db hdfs://bigdata02:9000/db/01 hadoop USER {actuor=jyw, date=2017-6-11}
刪除數據庫的語句
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
說明:
CASCADE:默認的情況下,hive不允許刪除一個含有表的數據庫,用戶在刪除數據庫的時候,要麼先刪除數據庫中所有的表,然後刪除數據庫;要麼在刪除的命令後面加上CASCADE,這樣hive會自行先刪除數據庫中所有的表。如果使用的是RESTRICT那麼就跟默認值是一樣的,就是必須先手動刪除數據庫中的所有的表,然後才能刪除數據庫。
修改數據的語句
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;
說明:
hive只支持對dbproperties和owner的更改,不支持對數據庫其它元數據信息的修改
案例
hive> alter database db01 set dbproperties ('user'='hupu','date'='2017-06-11 12:27:00');
hive> describe database extended db01;
db01 this is the first hive db hdfs://bigdata02:9000/db/01 hadoop USER {actuor=jyw, date=2017-06-11 12:27:00, user=hupu}