CREATE DATABASE语句创建一个给定名称的数据库。在创建时,我们可以选择加上注解,指定目录和附加属性。
语法
CREATE DATABASE database_name [LOCATION hdfs_path];
举例
假设我们想要为某个股票交易平台建设一个数据库exchange_platform;
[$host]transwarp> CREATE DATABASE exchange_platform;
说明
Inceptor会为每一个数据库创建一个目录。Inceptor的默认数据库
default是个例外,它没有自己的目录。Inceptor数据库的目录由
hive.metastore.warehouse.dir属性指定,它的默认值是
hdfs://ns/inceptor_id/user/hive/warehouse/exchange_platform.db
。所以Inceptor为exchange_platform创建的目录是
hdfs://ns/inceptor_id/user/hive/warehouse/exchange_platform.db。如果想要自定义数据库的目录,我们可以加上
LOCATION hdfs_path这个选项:
举例
[$host]transwarp> CREATE DATABASE my_db
> LOCATION 'hdfs://ns/inceptor_id/user/hive/warehouse/my/directory';
这样,数据库our_platform的路径为
hdfs://ns/inceptor_id/user/hive/warehouse/my/directory,our_platform下的表将存在此路径下。LOCATION也可以是相对路径:
[$host]transwarp> CREATE DATABASE my_db
> LOCATION 'inceptor_id/user/hive/warehouse/my/directory';
可以使用DESCRIBE DATABASE来查看数据库的路径:
[$host]transwarp> DESCRIBE DATABASE my_db;
my_db hdfs://ns/inceptor1/user/hive/warehouse/my/directory
语法
ALTER DATABASE database_name SET DBPROPERTIES (property_name=property_value, ...)
举例
[$host]transwarp> ALTER DATABASE exchange_platform SET DBPROPERTIES ('creater'= 'Zhang San');
举例
[$host]transwarp> USE exchange_platform;
transwarp> SELECT * FROM user_info;
上面代码将接下来将要使用的数据库设定为exchange_platform,之后便可以直接使用位于exchange_platform下的表user_info。要回到default数据库只需要执行:
[$host]transwarp> USE default;
不改变当前使用的数据库,使用“.”可以调用不在当前数据库中的表:
[$host]transwarp> USE default: //设置当前数据库为default
transwarp> SELECT * FROM exchange_platform.user_info; //查询exchange_platform下的user_info表