Apache hive 是一个构建在 Hadoop 之上的数据仓库工具。可以使用Hive查询语言处理结构化数据。在本文中,我们将看到Hive的数据库可用的选项。
数据库用于存储信息。 hive 将为它创建的每个数据库创建一个目录。在数据库中创建的所有表都将存储在数据库目录的子目录中。我们可以通过检查/conf/hive-site.xml文件中的hive.metastore.warehouse.dir属性在 HDFS(Hadoop 分布式文件系统)上找到数据库目录的位置。
/user/hive/warehouse是在hive.metastore.warehouse.dir属性中设置的默认目录位置,其中创建了所有数据库和表目录。该位置是可配置的,我们可以根据我们的要求进行更改。例如,如果我们创建了名为Test的数据库,那么Hive将创建目录/user/hive/warehouse/Test.db 。让我们对此进行一个快速演示。
步骤 1:启动所有 Hadoop 守护进程。
第 2 步:启动Hive外壳。
第 3 步:创建一个名为Test的数据库。
句法:
CREATE DATABASE ;
命令:
create database Test;
第四步:查看HDFS上的/user/hive/warehouse位置,看是否建立了数据库目录。对于 Hadoop 3,转到http://localhost:9870 ,对于 Hadoop 2,转到http://localhost:50070以浏览名称节点。单击 Utilities -> Browse the file system 然后移动到/user/hive/warehouse 。
在上图中,我们可以看到Test.db数据库可用。
Hive的数据库可用的选项
1. 地点
位置选项可帮助用户覆盖创建数据库目录的默认位置。我们知道创建数据库的默认目录是/user/hive/warehouse。因此我们可以使用此选项更改此目录。
让我们借助以下命令在 HDFS 上创建一个名为hive_db的目录。
hdfs dfs -mkdir /hive_db
现在,将 Location 选项与create database命令一起使用的语法如下所示。
CREATE DATABASE
LOCATION '/';
例子:
在 HDFS 上的/hive_db目录中创建名为Temp的数据库。在这里, LOCATION 将覆盖创建数据库目录的默认位置。现在,您为此数据库创建的表将在 HDFS 中的/hive_db中创建。
CREATE DATABASE Temp
LOCATION '/hive_db';
2. 评论
我们可以在我们创建的数据库中添加评论。我们可以添加一些创建该数据库的原因等。
句法:
CREATE DATABASE
COMMENT '';
例子:
CREATE DATABASE student
COMMENT 'The DB stores data of students';
3. 描述
我们可以使用 DESCRIBE 来描述我们的数据库。它与配置单元中的数据库、表和视图一起使用。该选项将显示数据库位置和有关该数据库的其他信息。
句法:
DESCRIBE DATABASE ;
例子:
DESCRIBE DATABASE Temp;
DESCRIBE DATABASE student;
4. 使用 DBproperties
我们可以使用此选项以键值对的形式将一些属性或信息添加到我们的数据库中。使用此选项添加的属性只能通过将 EXTENDED 选项与 DESCRIBE DATABASE 命令一起使用来查看。
句法:
CREATE DATABASE
WITH DBPROPERTIES ('' = '');
例子:
CREATE DATABASE employee
WITH DBPROPERTIES ('made by' = 'GFG', 'date' = '2020-10-10', 'company' = 'GeeksForGeeks');
现在,让我们通过 Describe 数据库查看这些值。
DESCRIBE DATABASE employee; # does not show the property added with WITH DBPRROPERTIES
DESCRIBE DATABASE EXTENDED employee; # shows the property added with WITH DBPROPERTIES
5. 使用
USE 命令用于使用数据库对其进行处理。由于有多个数据库可用,因此我们可以通过 USE 命令或选项来选择或选择要使用的数据库。
句法:
USE ;
例子:
USE employee;
6. 删除
DROP 用于删除现有数据库。
句法:
DROP DATABASE ;
例子:
DROP DATABASE employee;
7. 展示
SHOW用于显示现有的可用数据库列表。
命令:
SHOW DATABASES;