📜  Apache Hive – HQL 数据库创建和删除数据库入门

📅  最后修改于: 2021-10-27 06:32:14             🧑  作者: Mango

先决条件: Hive 3.1.2 安装,Hadoop 3.1.2 安装

HiveQL 或 HQL 是一种Hive查询语言,我们用于在Hive上处理或查询结构化数据。 HQL 语法与 MySQL 非常相似,但有一些显着差异。我们将使用hive命令,它是一个 bash shell 脚本来使用 CLI(命令行界面)完成我们的 hive 演示。我们只需在终端中输入 hive 即可轻松启动 hive shell。确保.basrc文件中提到了配置单元安装的/bin目录。 .bashrc文件在用户登录系统时自动执行 和所有必要的 此脚本文件中提到的命令将运行。我们可以简单地检查/bin目录是否可用,只需使用如下所示的命令打开它即可。

sudo gedit ~/.bashrc  

如果未添加路径,则添加它,以便我们可以直接从终端运行 hive shell,而无需移动到 hive 目录。否则,我们可以通过移动到apache-hive-3.1.2/bin/目录并按下hive命令来手动启动 hive。

在执行hive之前,请确保所有 Hadoop 守护进程都已启动并正常工作。我们可以简单地使用以下命令启动所有 Hadoop 守护进程。

start-dfs.sh                    # this will start namenode, datanode and secondary namenode

start-yarn.sh                   # this will start node manager and resource manager  

jps                             # To check running daemons

Apache Hive的数据库

数据库是包含多个表的存储模式。 Hive数据库是指表的命名空间。如果默认情况下未指定数据库名称, Hive将其默认数据库用于表创建和其他目的。创建数据库允许多个用户在不同模式中创建具有相似名称的表,以便他们的名称不匹配。

因此,让我们使用以下命令启动我们的hive shell 来执行我们的任务。

hive

使用以下命令查看已经存在的数据库。

show databases;                  # this will show the existing databases  

创建数据库语法:

我们可以在以下命令的帮助下创建一个数据库,但如果数据库已经存在,那么在这种情况下, Hive将抛出错误。

CREATE DATABASE|SCHEMA     # we can use DATABASE or SCHEMA for creation of DB

例子:

CREATE DATABASE Test;            # create databse with name Test

show databases;                  # this will show the existing databases 

如果我们再次尝试创建一个 Test 数据库 hive 将抛出错误/警告名称为 Test 的数据库已经存在。一般来说,如果数据库存在,我们不希望得到错误。所以我们使用带有 [IF NOT EXIST] 子句的 create database 命令。这不会抛出任何错误。

CREATE DATABASE|SCHEMA [IF NOT EXISTS] 

例子:

CREATE SCHEMA IF NOT EXISTS Test1;

SHOW DATABASES;

删除现有数据库的语法:

DROP DATABASE ;  or  DROP DATABASE IF EXIST   # The IF EXIST clause again is used to suppress error

例子:

DROP DATABASE IF EXISTS Test;

DROP DATABASE Test1;  

现在使用quit命令退出 hive shell。

quit;