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] >
一般來說,要刪除數(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ù)庫。
打開Impala查詢編輯器并在其中鍵入DELETE DATABASE語句,然后單擊執(zhí)行按鈕,如下所示。 假設有三個數(shù)據(jù)庫,即my_db,my_database和sample_database以及默認數(shù)據(jù)庫。 這里我們刪除名為my_database的數(shù)據(jù)庫。
執(zhí)行查詢后,輕輕將光標移動到下拉菜單的頂部。 然后,您將找到一個刷新符號,如下面的屏幕截圖所示。 如果單擊刷新符號,將刷新數(shù)據(jù)庫列表,并將對其應用最近所做的更改。
單擊編輯器左側標題DATABASE下的下拉菜單。 在那里,您可以看到系統(tǒng)中的數(shù)據(jù)庫列表。 這里可以觀察新創(chuàng)建的數(shù)據(jù)庫my_db,如下所示。
如果仔細觀察,您只能看到一個數(shù)據(jù)庫,即列表中的my_db以及默認數(shù)據(jù)庫。
更多建議: