Impala - Upuść bazę danych
Plik DROP DATABASE Statementof Impala służy do usuwania bazy danych z Impala. Przed usunięciem bazy danych zaleca się usunięcie z niej wszystkich tabel.
Składnia
Poniżej znajduje się składnia DROP DATABASE Komunikat.
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT |
CASCADE] [LOCATION hdfs_path];
Tutaj, IF EXISTSjest klauzulą opcjonalną. Jeśli użyjemy tej klauzuli, gdy istnieje baza danych o podanej nazwie, zostanie ona usunięta. A jeśli nie ma istniejącej bazy danych o podanej nazwie, żadna operacja nie jest wykonywana.
Przykład
Poniżej znajduje się przykład DROP DATABASEkomunikat. Załóżmy, że masz bazę danych w Impali o nazwiesample_database.
A jeśli zweryfikujesz listę baz danych przy użyciu SHOW DATABASES oświadczenie, zauważysz zawarte w nim imię.
[quickstart.cloudera:21000] > SHOW DATABASES;
Query: show DATABASES
+-----------------------+
| name |
+-----------------------+
| _impala_builtins |
| default |
| my_db |
| sample_database |
+-----------------------+
Fetched 4 row(s) in 0.11s
Teraz możesz usunąć tę bazę danych za pomocą rozszerzenia DROP DATABASE Statement jak pokazano niżej.
< DROP DATABASE IF EXISTS sample_database;
Spowoduje to usunięcie określonej bazy danych i da następujące dane wyjściowe.
Query: drop DATABASE IF EXISTS sample_database;
Weryfikacja
Możesz sprawdzić, czy dana baza danych została usunięta, używając SHOW DATABASESkomunikat. Tutaj możesz zauważyć, że baza danych o nazwiesample_database jest usuwany z listy baz danych.
[quickstart.cloudera:21000] > SHOW DATABASES;
Query: show DATABASES
+----------------------+
| name |
+----------------------+
| _impala_builtins |
| default |
| my_db |
+----------------------+
Fetched 3 row(s) in 0.10s
[quickstart.cloudera:21000] >
Kaskada
Ogólnie rzecz biorąc, aby usunąć bazę danych, należy ręcznie usunąć wszystkie zawarte w niej tabele. Jeśli używasz kaskady, Impala usuwa tabele w określonej bazie danych przed jej usunięciem.
Przykład
Załóżmy, że w Impali istnieje baza danych o nazwie samplei zawiera dwie tabele, a mianowicie student i test. Jeśli spróbujesz usunąć tę bazę danych bezpośrednio, pojawi się błąd, jak pokazano poniżej.
[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.
Za pomocą cascade, możesz usunąć tę bazę danych bezpośrednio (bez ręcznego usuwania jej zawartości), jak pokazano poniżej.
[quickstart.cloudera:21000] > DROP database sample cascade;
Query: drop database sample cascade
Note - Nie można usunąć „current database”W Impali. Dlatego przed usunięciem bazy danych musisz upewnić się, że bieżący kontekst jest ustawiony na bazę danych inną niż ta, którą zamierzasz usunąć.
Usuwanie bazy danych za pomocą przeglądarki Hue
Otwórz edytor zapytań Impala i wpisz DELETE DATABASEoświadczenie w nim i kliknij przycisk wykonaj, jak pokazano poniżej. Załóżmy, że istnieją trzy bazy danych, a mianowiciemy_db, my_database, i sample_databasewraz z domyślną bazą danych. Tutaj usuwamy bazę danych o nazwie my_database.
Po wykonaniu zapytania delikatnie przesuń kursor na górę menu rozwijanego. Następnie znajdziesz symbol odświeżania, jak pokazano na zrzucie ekranu podanym poniżej. Jeśli klikniesz symbol odświeżania, lista baz danych zostanie odświeżona, a ostatnie wprowadzone zmiany zostaną do niej zastosowane.
Weryfikacja
Kliknij na drop down pod nagłówkiem DATABASEpo lewej stronie edytora. Tam możesz zobaczyć listę baz danych w systemie. Tutaj możesz obserwować nowo utworzoną bazę danychmy_db jak pokazano niżej.
Jeśli przyjrzysz się uważnie, zobaczysz tylko jedną bazę danych, tj. my_db na liście wraz z domyślną bazą danych.