Impala - 刪除表



Impala 的 `drop table` 語句用於刪除 Impala 中已存在的表。此語句還會刪除內部表的底層 HDFS 檔案。

注意 - 使用此命令時必須小心,因為一旦刪除表,表中的所有資訊都將永久丟失。

語法

`DROP TABLE` 語句的語法如下所示。這裡,`IF EXISTS` 是一個可選子句。如果使用此子句,只有在存在具有給定名稱的表時才會刪除該表。否則,將不執行任何操作。

DROP table database_name.table_name;

如果嘗試刪除不存在的表且沒有使用 `IF EXISTS` 子句,則會生成錯誤。可以選擇性地與 `table_name` 一起指定 `database_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 個表。

以下是 `drop table` 語句的示例。在此示例中,我們正在從資料庫 `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 tables` 查詢獲取表列表,則可以看到名為 `student` 的表不在列表中。

[quickstart.cloudera:21000] > show tables; 

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

使用 Hue 瀏覽器建立資料庫

開啟 Impala 查詢編輯器,在其中鍵入 `drop table` 語句。然後單擊執行按鈕,如下面的螢幕截圖所示。

Creating Database

執行查詢後,輕輕地將游標移動到下拉選單的頂部,您會找到一個重新整理符號。如果單擊重新整理符號,資料庫列表將重新整理,並且最近所做的更改將應用於其中。

Creating Database Dropdown

驗證

單擊編輯器左側“資料庫”標題下的下拉選單。在那裡您可以看到資料庫列表;選擇資料庫 `my_db`,如下所示。

Creating Database Verification

選擇資料庫 `my_db` 後,您可以看到其中的表列表,如下所示。在這裡,您找不到已刪除的表 `student`,如下所示。

Creating Database MY DB
廣告