Impala - DROP DATABASE 语句

Impala 的DROP DATABASE 语句用于从Impala 中删除数据库。 在删除数据库之前,建议删除其中的所有表。

语法

以下是DROP DATABASE语句的语法。

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT | 
CASCADE] [LOCATION hdfs_path];

这里,IF EXISTS是一个可选子句。 如果我们在给定名称的数据库存在时使用此子句,那么它将被删除。 如果不存在具有给定名称的现有数据库,则不执行任何操作。

示例

以下是DROP DATABASE语句的示例。 假设您在 Impala 中有一个名为 sample_database 的数据库。

并且,如果您使用 SHOW DATABASES 语句验证数据库列表,您将观察其中的名称。

[quickstart.cloudera:21000] > SHOW DATABASES;

Query: show DATABASES
+-----------------------+ 
| name                  | 
+-----------------------+ 
| _impala_builtins      | 
| default               | 
| my_db                 | 
| sample_database       | 
+-----------------------+ 
Fetched 4 row(s) in 0.11s

现在,您可以使用DROP DATABASE 语句删除此数据库,如下所示。

 < DROP DATABASE IF EXISTS sample_database;

这将删除指定的数据库并提供以下输出。

Query: drop DATABASE IF EXISTS sample_database;

验证

您可以使用SHOW DATABASES语句验证给定数据库是否已删除。 在这里您可以观察到名为 sample_database 的数据库已从数据库列表中删除。

[quickstart.cloudera:21000] > SHOW DATABASES;

Query: show DATABASES 
+----------------------+ 
| name                 | 
+----------------------+ 
| _impala_builtins     | 
| default              | 
| my_db                | 
+----------------------+ 
Fetched 3 row(s) in 0.10s 
[quickstart.cloudera:21000] >

cascade

一般来说,要删除数据库,需要手动删除其中的所有表。 如果您使用 cascade,Impala 会在删除指定数据库之前先删除该数据库中的表。

示例

假设Impala中有一个名为sample的数据库,它包含两个表,分别是studenttest。 如果您尝试直接删除此数据库,您将收到如下所示的错误。

[quickstart.cloudera:21000] > DROP database sample;
Query: drop database sample 
ERROR: 
ImpalaRuntimeException: Error making 'dropDatabase' RPC to Hive Metastore: 
CAUSED BY: InvalidOperationException: Database sample is not empty. One or more 
tables exist.

使用cascade,您可以直接删除该数据库(无需手动删除其内容),如下所示。

[quickstart.cloudera:21000] > DROP database sample cascade; 
Query: drop database sample cascade

注意 − 您无法删除 Impala 中的"当前数据库"。 因此,在删除数据库之前,您需要确保当前上下文设置为除要删除的数据库之外的数据库。

使用 Hue 浏览器删除数据库

打开 Impala 查询编辑器并在其中键入 DELETE DATABASE 语句,然后单击执行按钮,如下所示。 假设有三个数据库,即 my_db、my_databasesample_database 以及默认数据库。 这里我们删除名为 my_database 的数据库。

删除数据库

执行查询后,将光标轻轻移动到下拉菜单的顶部。 然后,您会发现一个刷新符号,如下面的屏幕截图所示。 如果单击刷新符号,数据库列表将被刷新,并且最近所做的更改将应用到其中。

数据库列表

验证

单击编辑器左侧数据库标题下的下拉菜单。 在那里,您可以看到系统中的数据库列表。 在这里您可以观察到新创建的数据库my_db,如下所示。

下拉

如果仔细观察,你会发现列表中只有一个数据库,即 my_db 以及默认数据库。