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}