Impala - 删除一个表


Impala drop table语句用于删除 Impala 中的现有表。该语句还会删除内表的底层HDFS文件

注意- 使用此命令时必须小心,因为一旦删除表,表中的所有可用信息也将永远丢失。

句法

以下是DROP TABLE语句的语法。这里,IF EXISTS是一个可选子句。如果我们使用此子句,则仅删除具有给定名称的表(如果该表存在)。否则,不会进行任何操作。

DROP table database_name.table_name;

如果尝试删除不存在 IF EXISTS 子句的表,则会生成错误。您可以选择指定database_nametable_name

例子

让我们首先验证数据库my_db中的表列表,如下所示。

[quickstart.cloudera:21000] > show tables;

Query: show tables 
+------------+ 
| name       | 
+------------+ 
| customers  | 
| employee   | 
| student    | 
+------------+ 
Fetched 3 row(s) in 0.11s

从上面的结果可以观察到数据库my_db包含3张表

以下是删除表语句的示例。在此示例中,我们将从数据库my_db中删除名为Student的表。

[quickstart.cloudera:21000] > drop table if exists my_db.student;

执行上述查询时,将删除具有指定名称的表,并显示以下输出。

Query: drop table if exists student

确认

show Tables查询给出 Impala 当前数据库中的表列表。因此,您可以使用Show Tables语句验证表是否已删除。

首先,您需要将上下文切换到所需表所在的数据库,如下所示。

[quickstart.cloudera:21000] > use my_db; 
Query: use my_db

然后,如果您使用show rows查询获取表列表,您可以观察到名为Student的表不在列表中。

[quickstart.cloudera:21000] > show tables; 

Query: show tables 
+-----------+ 
| name      | 
+-----------+ 
| customers | 
| employee  | 
| student   | 
+-----------+ 
Fetched 3 row(s) in 0.11s

使用 Hue 浏览器创建数据库

打开 Impala 查询编辑器并在其中输入drop Table语句。然后单击执行按钮,如下图所示。

创建数据库

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

创建数据库下拉列表

确认

单击编辑器左侧“数据库”标题下的下拉菜单。在那里你可以看到数据库列表;选择数据库my_db,如下所示。

创建数据库验证

选择数据库my_db后,您可以看到其中的表列表,如下所示。这里你在列表中找不到被删除的表student ,如下所示。

创建数据库 MY DB