Impala - Supprimer une base de données

le DROP DATABASE Statementd'Impala est utilisé pour supprimer une base de données d'Impala. Avant de supprimer la base de données, il est recommandé d'en supprimer toutes les tables.

Syntaxe

Voici la syntaxe de DROP DATABASE Déclaration.

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

Ici, IF EXISTSest une clause facultative. Si nous utilisons cette clause lorsqu'une base de données avec le nom donné existe, elle sera supprimée. Et s'il n'y a pas de base de données existante avec le nom donné, aucune opération n'est effectuée.

Exemple

Voici un exemple de DROP DATABASEdéclaration. Supposons que vous ayez une base de données dans Impala avec le nomsample_database.

Et, si vous vérifiez la liste des bases de données à l'aide du SHOW DATABASES déclaration, vous observerez le nom dedans.

[quickstart.cloudera:21000] > SHOW DATABASES;

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

Maintenant, vous pouvez supprimer cette base de données en utilisant le DROP DATABASE Statement comme indiqué ci-dessous.

< DROP DATABASE IF EXISTS sample_database;

Cela supprimera la base de données spécifiée et vous donnera la sortie suivante.

Query: drop DATABASE IF EXISTS sample_database;

Vérification

Vous pouvez vérifier si la base de données donnée est supprimée, en utilisant le SHOW DATABASESdéclaration. Ici, vous pouvez observer que la base de données nomméesample_database est supprimé de la liste des bases de données.

[quickstart.cloudera:21000] > SHOW DATABASES;

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

Cascade

En général, pour supprimer une base de données, vous devez supprimer manuellement toutes les tables qu'elle contient. Si vous utilisez la cascade, Impala supprime les tables de la base de données spécifiée avant de la supprimer.

Exemple

Supposons qu'il existe une base de données dans Impala nommée sample, et il contient deux tableaux, à savoir, student et test. Si vous essayez de supprimer cette base de données directement, vous obtiendrez une erreur comme indiqué ci-dessous.

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

En utilisant cascade, vous pouvez supprimer cette base de données directement (sans supprimer manuellement son contenu) comme indiqué ci-dessous.

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

Note - Vous ne pouvez pas supprimer le "current database»Dans Impala. Par conséquent, avant de supprimer une base de données, vous devez vous assurer que le contexte actuel est défini sur la base de données autre que celle que vous allez supprimer.

Suppression d'une base de données à l'aide du navigateur Hue

Ouvrez l'éditeur de requête Impala et saisissez le DELETE DATABASEet cliquez sur le bouton Exécuter comme indiqué ci-dessous. Supposons qu'il existe trois bases de données, à savoir,my_db, my_database, et sample_databaseavec la base de données par défaut. Ici, nous supprimons la base de données nommée my_database.

Après avoir exécuté la requête, déplacez doucement le curseur vers le haut du menu déroulant. Ensuite, vous trouverez un symbole d'actualisation comme indiqué dans la capture d'écran ci-dessous. Si vous cliquez sur le symbole d'actualisation, la liste des bases de données sera actualisée et les modifications récentes apportées lui seront appliquées.

Vérification

Clique sur le drop down sous le titre DATABASEsur le côté gauche de l'éditeur. Là, vous pouvez voir une liste de bases de données dans le système. Ici vous pouvez observer la base de données nouvellement crééemy_db comme indiqué ci-dessous.

Si vous observez attentivement, vous ne pouvez voir qu'une seule base de données, à savoir, my_db dans la liste avec la base de données par défaut.