Hive中的數據定義(DDL)__Database(Schema)

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}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章