hive教程:查看、创建、修改、删除、切换使用数据库

创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name 
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

解释:

  • [IF NOT EXISTS]:如果数据库存在,就不创建。防止要创建的数据库已经存在,而报错。较常用

  • [COMMENT database_comment]:描述、备注

  • [LOCATION hdfs_path]:数据库在 HDFS 上的 存储路径
    默认存储路径:/user/hive/warehouse/数据库名.db

  • [WITH DBPROPERTIES (property_name=property_value, ...)];:数据库属性,如:创建者、创建时间等

例子

create database test;

在web管理页面查看: http://localhost:9870/

例子:创建同名数据库(会报错)

create database test;

因为 test 数据库存在,会报错,错误信息如下:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database test already exists

例子:创建同名数据库(不会报错)

create database if not exists test;

如果test数据库存在,不会报错

例子:创建时指定保存路径

create database test2 location '/test2.db';

查看数据库

显示所有数据库

show databases;

过滤(like)

show databases like 't*';

查看数据库详细信息

desc database test;

显示如下:

test            hdfs://0.0.0.0:9000/user/hive/warehouse/test.db root    USER

解释:

  • test:名字

  • hdfs://0.0.0.0:9000/user/hive/warehouse/test.db:保存路径

  • root:用户名

  • USER:用户类型

查看 扩展 详细信息(extended)

desc database extended test;

由于建库时,没有设置更多信息,所以显示的信息与 desc database test; 相同

在mysql中查看元信息

查看 mysql 的 metastore 数据库的 dbs 表,如下图:

可以查看数据库的详细信息

切换使用数据库

use 数据库名

例

use test

修改数据库

可以修改数据库的 DBPROPERTIES,设置 key/value 属性值:

alter database test set dbproperties('create_time'='2021-03-01');

查看扩展详细信息

desc database extended test;

显示如下:

test            hdfs://0.0.0.0:9000/user/hive/warehouse/test.db root    USER    {create_time=2021-03-01}

在mysql中查看元信息

查看 mysql 的 metastore 数据库的 database_params 表,如下图:

删除数据库

删除 空 数据库

drop database test;

注意:只能删除 空的 数据库

如果数据库存在就删除

删除不存在的数据库会报错,为防止报错,加上 if exists 判断是否存在

drop database if exists test;

删除 非空 数据库

drop database test cascade;

原文出处:/show_1IXkiSrR0mM.html