Impala-drop-database

提供:Dev Guides
移動先:案内検索

Impala-データベースの削除

Impalaの* DROP DATABASEステートメント*は、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ステートメント*を使用してこのデータベースを削除できます。

 < 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 という名前のデータベースがあり、 studenttest という2つのテーブルが含まれているとします。 このデータベースを直接削除しようとすると、次のようなエラーが表示されます。

[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

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

Hueブラウザを使用したデータベースの削除

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

データベースの削除

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

データベースリスト

検証

エディターの左側の見出し DATABASE の下にある*ドロップダウン*をクリックします。 そこで、システム内のデータベースのリストを見ることができます。 ここでは、以下に示すように、新しく作成されたデータベース my_db を確認できます。

ドロップダウン

注意深く観察すると、デフォルトのデータベースとともに、リストに my_db など、1つのデータベースしか表示されません。