Hive之数据库常用操作

本文最后更新于:2 年前

Hive 中数据库的概念本质上是表的一个目录或命名空间。

创建数据库

1
hive> create database 数据库名;

如果用户没有显式指定数据库,那么就会使用默认的数据库 default 创建数据库;如果创建了已经存在的数据库,那么会报异常。

通过以下命令创建数据库:

1
hive> create database if not exists 数据库名;

如果数据库已经存在,不会报错,但是也不会覆盖之前的数据库。

查询数据库

1
hive> show databases;

如果数据库很多,可以使用 like 配合正则表达式进行数据库的筛选,例如:

1
2
--- 查询以te开头的数据库
hive> show databases like 'te.*';

hive会为每一个数据库创建一个目录,数据库中的表将会以这个数据库目录的子目录形式存储。但有一个例外:default 数据库中的表,因为这个数据库本身就没有自己的目录。

以刚才的测试为例,根据之前在 hive-site.xml中 的配置,在当前伪分布式下,hive 会对应的在
hdfs://192.168.59.100:9000/hive/warehouse 下创建testdb.db(数据库目录以.db作为结尾)。

选中数据库

use 命令可以将某个数据库设置为当前用户使用的工作数据库,格式:

1
hive> use 数据库名;

删除数据库

1
drop database 数据库名;

默认情况下,hive不允许用户删除一个包含着表的数据库,如果删除一个包含表的数据库,会报以异常。如果要删除数据库,需要先删除表,再删除数据库。

可以通过关键字 cascade 强制删除数据库,这样可以使 hive 自行删除数据库中的表:

1
drop database 数据库名 cascade;

如果删除一个不存在的数据库,则会报异常。为避免因数据库不存在而报异常信息,可以通过以下命令:

1
drop database if exists 数据库名;

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!