Impala - solte um banco de dados
o DROP DATABASE Statementdo Impala é usado para remover um banco de dados do Impala. Antes de excluir o banco de dados, é recomendável remover todas as tabelas dele.
Sintaxe
A seguir está a sintaxe de DROP DATABASE Declaração.
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT |
CASCADE] [LOCATION hdfs_path];
Aqui, IF EXISTSé uma cláusula opcional. Se usarmos esta cláusula quando um banco de dados com o nome fornecido existir, ele será excluído. E se não houver banco de dados existente com o nome fornecido, nenhuma operação será executada.
Exemplo
A seguir está um exemplo de DROP DATABASEdeclaração. Suponha que você tenha um banco de dados no Impala com o nomesample_database.
E, se você verificar a lista de bancos de dados usando o SHOW DATABASES declaração, você observará o nome nela.
[quickstart.cloudera:21000] > SHOW DATABASES;
Query: show DATABASES
+-----------------------+
| name |
+-----------------------+
| _impala_builtins |
| default |
| my_db |
| sample_database |
+-----------------------+
Fetched 4 row(s) in 0.11s
Agora, você pode excluir este banco de dados usando o DROP DATABASE Statement como mostrado abaixo.
< DROP DATABASE IF EXISTS sample_database;
Isso excluirá o banco de dados especificado e fornecerá a seguinte saída.
Query: drop DATABASE IF EXISTS sample_database;
Verificação
Você pode verificar se o banco de dados fornecido foi excluído, usando o SHOW DATABASESdeclaração. Aqui você pode observar que o banco de dados denominadosample_database é removido da lista de bancos de dados.
[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
Em geral, para excluir um banco de dados, você precisa remover todas as tabelas nele manualmente. Se você usar cascata, o Impala remove as tabelas do banco de dados especificado antes de excluí-lo.
Exemplo
Suponha que haja um banco de dados no Impala chamado sample, e contém duas tabelas, a saber, student e test. Se você tentar remover este banco de dados diretamente, obterá um erro conforme mostrado abaixo.
[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.
Usando cascade, você pode excluir este banco de dados diretamente (sem excluir seu conteúdo manualmente) conforme mostrado abaixo.
[quickstart.cloudera:21000] > DROP database sample cascade;
Query: drop database sample cascade
Note - Você não pode excluir o “current database”No Impala. Portanto, antes de excluir um banco de dados, você precisa se certificar de que o contexto atual está definido para o banco de dados diferente daquele que você irá excluir.
Excluindo um banco de dados usando o navegador Hue
Abra o editor de consultas Impala e digite o DELETE DATABASEdeclaração nele e clique no botão executar como mostrado abaixo. Suponha que existam três bancos de dados, a saber,my_db, my_databasee sample_databasejunto com o banco de dados padrão. Aqui, estamos excluindo o banco de dados denominado my_database.
Depois de executar a consulta, mova suavemente o cursor para o topo do menu suspenso. Em seguida, você encontrará um símbolo de atualização, conforme mostrado na imagem fornecida abaixo. Se você clicar no símbolo de atualização, a lista de bancos de dados será atualizada e as alterações recentes feitas serão aplicadas a ela.
Verificação
Clique no drop down sob o título DATABASEno lado esquerdo do editor. Lá, você pode ver uma lista de bancos de dados no sistema. Aqui você pode observar o banco de dados recém-criadomy_db como mostrado abaixo.
Se você observar cuidadosamente, poderá ver apenas um banco de dados, ou seja, my_db na lista junto com o banco de dados padrão.