Impala-データベースを削除する

ザ・ DROP DATABASE Statementof Impalaは、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 Statement 以下に示すように。

< 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、および2つのテーブルが含まれています。 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.

使用する cascade、以下に示すように、このデータベースを直接(コンテンツを手動で削除せずに)削除できます。

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

Note −「current database」をImpalaで。したがって、データベースを削除する前に、現在のコンテキストが、削除するデータベース以外のデータベースに設定されていることを確認する必要があります。

HueBrowserを使用したデータベースの削除

Impalaクエリエディタを開き、次のように入力します DELETE DATABASEその中のステートメントを入力し、以下に示すように実行ボタンをクリックします。3つのデータベースがあるとします。my_db, my_database、および sample_databaseデフォルトのデータベースと一緒に。ここでは、my_databaseという名前のデータベースを削除しています。

クエリを実行した後、カーソルをドロップダウンメニューの上部にそっと移動します。次に、以下のスクリーンショットに示すような更新記号が表示されます。更新記号をクリックすると、データベースのリストが更新され、最近行われた変更がデータベースに適用されます。

検証

クリックしてください drop down 見出しの下 DATABASEエディターの左側にあります。そこで、システム内のデータベースのリストを見ることができます。ここでは、新しく作成されたデータベースを観察できますmy_db 以下に示すように。

注意深く観察すると、1つのデータベースしか見ることができません。 my_db デフォルトのデータベースと一緒にリストにあります。