Impala: rilascia un database

Il DROP DATABASE Statementdi Impala viene utilizzato per rimuovere un database da Impala. Prima di eliminare il database, si consiglia di rimuovere tutte le tabelle da esso.

Sintassi

Di seguito è riportata la sintassi di DROP DATABASE Dichiarazione.

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

Qui, IF EXISTSè una clausola facoltativa. Se utilizziamo questa clausola quando esiste un database con il nome specificato, verrà eliminato. E se non esiste un database esistente con il nome specificato, non viene eseguita alcuna operazione.

Esempio

Di seguito è riportato un esempio di DROP DATABASEdichiarazione. Supponiamo di avere un database in Impala con il nomesample_database.

Inoltre, se verifichi l'elenco dei database utilizzando l'estensione SHOW DATABASES dichiarazione, osserverai il nome in essa.

[quickstart.cloudera:21000] > SHOW DATABASES;

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

Ora puoi eliminare questo database utilizzando il file DROP DATABASE Statement come mostrato di seguito.

< DROP DATABASE IF EXISTS sample_database;

Questo cancellerà il database specificato e ti darà il seguente output.

Query: drop DATABASE IF EXISTS sample_database;

Verifica

È possibile verificare se il database specificato è stato eliminato, utilizzando il SHOW DATABASESdichiarazione. Qui puoi osservare che il database denominatosample_database viene rimosso dall'elenco dei 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] >

Cascata

In generale, per eliminare un database, è necessario rimuovere manualmente tutte le tabelle in esso contenute. Se si utilizza la cascata, Impala rimuove le tabelle all'interno del database specificato prima di eliminarlo.

Esempio

Supponiamo che ci sia un database in Impala denominato samplee contiene due tabelle, ovvero student e test. Se provi a rimuovere direttamente questo database, riceverai un errore come mostrato di seguito.

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

Utilizzando cascade, puoi eliminare questo database direttamente (senza eliminarne il contenuto manualmente) come mostrato di seguito.

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

Note - Non è possibile eliminare il "current database"In Impala. Pertanto, prima di eliminare un database, è necessario assicurarsi che il contesto corrente sia impostato sul database diverso da quello che si intende eliminare.

Eliminazione di un database utilizzando Hue Browser

Apri l'editor di query di Impala e digita DELETE DATABASEdichiarazione in esso e fare clic sul pulsante di esecuzione come mostrato di seguito. Supponiamo che ci siano tre database, vale a dire,my_db, my_database, e sample_databaseinsieme al database predefinito. Qui stiamo eliminando il database denominato my_database.

Dopo aver eseguito la query, sposta delicatamente il cursore nella parte superiore del menu a discesa. Quindi, troverai un simbolo di aggiornamento come mostrato nello screenshot riportato di seguito. Se fai clic sul simbolo di aggiornamento, l'elenco dei database verrà aggiornato e le modifiche recenti apportate verranno applicate ad esso.

Verifica

Clicca sul drop down sotto il titolo DATABASEsul lato sinistro dell'editor. Lì puoi vedere un elenco di database nel sistema. Qui puoi osservare il database appena creatomy_db come mostrato di seguito.

Se osservi attentamente, puoi vedere solo un database, ovvero my_db nell'elenco insieme al database predefinito.