Impala - Suelta una base de datos

los DROP DATABASE Statementde Impala se utiliza para eliminar una base de datos de Impala. Antes de eliminar la base de datos, se recomienda eliminar todas las tablas.

Sintaxis

A continuación se muestra la sintaxis de DROP DATABASE Declaración.

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

Aquí, IF EXISTSes una cláusula opcional. Si usamos esta cláusula cuando existe una base de datos con el nombre dado, se eliminará. Y si no existe una base de datos con el nombre de pila, no se realiza ninguna operación.

Ejemplo

A continuación se muestra un ejemplo de DROP DATABASEdeclaración. Suponga que tiene una base de datos en Impala con el nombresample_database.

Y, si verifica la lista de bases de datos utilizando el SHOW DATABASES declaración, observará el nombre en ella.

[quickstart.cloudera:21000] > SHOW DATABASES;

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

Ahora, puede eliminar esta base de datos usando el DROP DATABASE Statement Como se muestra abajo.

< DROP DATABASE IF EXISTS sample_database;

Esto eliminará la base de datos especificada y le dará el siguiente resultado.

Query: drop DATABASE IF EXISTS sample_database;

Verificación

Puede verificar si la base de datos dada se elimina, utilizando el SHOW DATABASESdeclaración. Aquí puede observar que la base de datos denominadasample_database se elimina de la lista de bases de datos.

[quickstart.cloudera:21000] > SHOW DATABASES;

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

cascada

En general, para eliminar una base de datos, debe eliminar todas las tablas que contiene manualmente. Si usa cascada, Impala elimina las tablas dentro de la base de datos especificada antes de eliminarla.

Ejemplo

Supongamos que hay una base de datos en Impala llamada sample, y contiene dos tablas, a saber, student y test. Si intenta eliminar esta base de datos directamente, obtendrá un error como se muestra a continuación.

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

Utilizando cascade, puede eliminar esta base de datos directamente (sin eliminar su contenido manualmente) como se muestra a continuación.

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

Note - No puede eliminar el "current database”En Impala. Por lo tanto, antes de eliminar una base de datos, debe asegurarse de que el contexto actual esté configurado para la base de datos que no sea la que va a eliminar.

Eliminar una base de datos usando el navegador Hue

Abra el editor de consultas Impala y escriba DELETE DATABASEdeclaración en él y haga clic en el botón ejecutar como se muestra a continuación. Supongamos que hay tres bases de datos, a saber,my_db, my_databasey sample_databasejunto con la base de datos predeterminada. Aquí estamos eliminando la base de datos llamada my_database.

Después de ejecutar la consulta, mueva suavemente el cursor a la parte superior del menú desplegable. Luego, encontrará un símbolo de actualización como se muestra en la captura de pantalla que se muestra a continuación. Si hace clic en el símbolo de actualización, la lista de bases de datos se actualizará y se le aplicarán los cambios recientes realizados.

Verificación

Clickea en el drop down bajo el encabezado DATABASEen el lado izquierdo del editor. Allí, puede ver una lista de bases de datos en el sistema. Aquí puede observar la base de datos recién creadamy_db Como se muestra abajo.

Si observa con atención, puede ver solo una base de datos, es decir, my_db en la lista junto con la base de datos predeterminada.