impala 刪除數(shù)據(jù)庫

2018-01-03 16:35 更新

Impala的DROP DATABASE語句用于從Impala中刪除數(shù)據(jù)庫。 在刪除數(shù)據(jù)庫之前,建議從中刪除所有表。

語法

以下是DROP DATABASE語句的語法。

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

這里,IF EXISTS是一個可選子句。 如果我們在存在具有給定名稱的數(shù)據(jù)庫時使用此子句,則它將被刪除。 如果沒有具有給定名稱的現(xiàn)有數(shù)據(jù)庫,則不執(zhí)行任何操作。

以下是DROP DATABASE語句的示例。 假設您在Impala中有一個名稱為sample_database的數(shù)據(jù)庫。

并且,如果使用SHOW DATABASES語句驗證數(shù)據(jù)庫列表,您將觀察其中的名稱。

[quickstart.cloudera:21000] > SHOW DATABASES;

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

現(xiàn)在,您可以使用DROP DATABASE語句刪除此數(shù)據(jù)庫,如下所示。

 < DROP DATABASE IF EXISTS sample_database;

這將刪除指定的數(shù)據(jù)庫,并給您以下輸出。

Query: drop DATABASE IF EXISTS sample_database;

驗證

您可以使用SHOW DATABASES語句驗證給定數(shù)據(jù)庫是否已刪除。 在這里,您可以觀察到名為sample_database的數(shù)據(jù)庫從數(shù)據(jù)庫列表中刪除。

[quickstart.cloudera:21000] > SHOW DATABASES;

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

級聯(lián)

一般來說,要刪除數(shù)據(jù)庫,您需要手動刪除其中的所有表。 如果使用級聯(lián),Impala會在刪除指定數(shù)據(jù)庫中的表之前刪除它。

假設在Impala中有一個數(shù)據(jù)庫命名為sample,它包含兩個表,即student和test。 如果您嘗試直接刪除此數(shù)據(jù)庫,您將收到一個錯誤,如下所示。

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

使用級聯(lián),您可以直接刪除此數(shù)據(jù)庫(無需手動刪除其內容),如下所示。

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

注意 - 您不能刪除Impala中的“當前數(shù)據(jù)庫”。 因此,在刪除數(shù)據(jù)庫之前,需要確保將當前上下文設置為除要刪除的數(shù)據(jù)庫之外的數(shù)據(jù)庫。

使用Hue瀏覽器刪除數(shù)據(jù)庫

打開Impala查詢編輯器并在其中鍵入DELETE DATABASE語句,然后單擊執(zhí)行按鈕,如下所示。 假設有三個數(shù)據(jù)庫,即my_db,my_database和sample_database以及默認數(shù)據(jù)庫。 這里我們刪除名為my_database的數(shù)據(jù)庫。

刪除數(shù)據(jù)庫

執(zhí)行查詢后,輕輕將光標移動到下拉菜單的頂部。 然后,您將找到一個刷新符號,如下面的屏幕截圖所示。 如果單擊刷新符號,將刷新數(shù)據(jù)庫列表,并將對其應用最近所做的更改。

數(shù)據(jù)庫列表

驗證

單擊編輯器左側標題DATABASE下的下拉菜單。 在那里,您可以看到系統(tǒng)中的數(shù)據(jù)庫列表。 這里可以觀察新創(chuàng)建的數(shù)據(jù)庫my_db,如下所示。

落下

如果仔細觀察,您只能看到一個數(shù)據(jù)庫,即列表中的my_db以及默認數(shù)據(jù)庫。
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號