×

impala 教程

impala 概述impala 环境impala 架构impala Shellimpala 查询语言基础

数据库特定语句

impala 创建数据库impala 删除数据库impala 选择数据库

Table 特定语句

impala CREATE TABLE语句impala Insert语句impala Select语句impala Describe语句impala ALTER TABLEimpala 删除表impala 截断表impala 显示表impala 创建视图impala ALTER VIEWimpala 删除视图

impala 条款

impala ORDER BY子句impala GROUP BY子句impala having子句impala 限制条款impala 偏移条款impala Union条款impala with子句impala DISTINCT运算符

impala 相关资源

impala 相关资源impala 相关讨论

impala 删除数据库


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] >

级联

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

假设在Impala中有一个数据库命名为sample,它包含两个表,即student和test。 如果您尝试直接删除此数据库,您将收到一个错误,如下所示。

[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.

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

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

注意 - 您不能删除Impala中的“当前数据库”。 因此,在删除数据库之前,需要确保将当前上下文设置为除要删除的数据库之外的数据库。

使用Hue浏览器删除数据库

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

删除数据库

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

数据库列表

验证

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

落下

如果仔细观察,您只能看到一个数据库,即列表中的my_db以及默认数据库

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)