Учебники

Импала — Бросить базу данных

Оператор DROP DATABASE Impala используется для удаления базы данных из 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 , и она содержит две таблицы, а именно: student и test . Если вы попытаетесь удалить эту базу данных напрямую, вы получите ошибку, как показано ниже.

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

Используя каскад , вы можете удалить эту базу данных напрямую (без удаления ее содержимого вручную), как показано ниже.

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

Примечание. Вы не можете удалить « текущую базу данных » в Impala. Поэтому перед удалением базы данных вам необходимо убедиться, что текущий контекст настроен на базу данных, отличную от той, которую вы собираетесь удалить.

Удаление базы данных с использованием браузера Hue

Откройте редактор запросов Impala, введите в нем оператор DELETE DATABASE и нажмите кнопку «Выполнить», как показано ниже. Предположим, есть три базы данных, а именно, my_db, my_database и sample_database вместе с базой данных по умолчанию. Здесь мы удаляем базу данных с именем my_database.

Удалить базу данных

После выполнения запроса аккуратно переместите курсор в верхнюю часть выпадающего меню. Затем вы найдете символ обновления, как показано на скриншоте ниже. Если щелкнуть символ обновления, список баз данных будет обновлен и к нему будут применены последние внесенные изменения.

Список базы данных

верификация

Нажмите на раскрывающийся список под заголовком DATABASE в левой части редактора. Там вы можете увидеть список баз данных в системе. Здесь вы можете наблюдать недавно созданную базу данных my_db, как показано ниже.

Падать

Если вы внимательно наблюдаете, вы можете видеть только одну базу данных, т.е. my_db в списке вместе с базой данных по умолчанию.