Hive Utwórz tabelę: tabela wewnętrzna, zmień, upuść z przykładami

Stół Operatakie jak Tworzenie, zmienianie i upuszczanie tabele w Hive można obejrzeć w tym samouczku.

Na poniższym zrzucie ekranu tworzymy tabelę z kolumnami i zmieniamy nazwę tabeli.

1. Tworzenie tabeli guru_sample z dwiema nazwami kolumn, takimi jak „empid” i „empname”

2. Wyświetlanie tabel znajdujących się w bazie guru99

3. Guru_sample wyświetlany pod tabelami

4. Zmiana tabeli „guru_sample” na „guru_sampleNew”

5. Ponownie, gdy wykonasz polecenie „show”, wyświetli się nowa nazwa Guru_sampleNew

Hive Utwórz tabelę

Dropping table guru_sampleNew:

Hive Utwórz tabelę

Typy tabel i ich zastosowanie

Zbliża się do Stoły przypomina to sposób, w jaki tworzymy w tradycyjnych relacyjnych bazach danych. Na tabelach można wykonywać takie funkcjonalności jak filtrowanie, łączenie.

Ul dotyczy dwóch typów struktur tabel, takich jak Wewnętrzny i zewnętrzny tabele w zależności od ładowania i projektu schematu w Hive.

Stoły wewnętrzne

  • Stół wewnętrzny ma charakter ściśle ze sobą powiązany. W przypadku tego typu tabeli najpierw musimy utworzyć tabelę i załadować dane.
  • Możemy to nazwać tzw dane na schemacie.
  • Upuszczenie tej tabeli spowoduje usunięcie zarówno danych, jak i schematu.
  • Zapisana lokalizacja tej tabeli będzie znajdować się w /user/hive/warehouse.

Kiedy wybrać stół wewnętrzny?

  • Jeśli przetwarzanie danych jest dostępne w lokalnym systemie plików
  • Jeśli chcemy, aby Hive zarządzał pełnym cyklem życia danych, łącznie z usuwaniem

Przykładowy fragment kodu dla tabeli wewnętrznej

1. Aby utworzyć tabelę wewnętrzną

 Hive>CREATE TABLE guruhive_internaltable (id INT,Name STRING);
	 Row format delimited 
	 Fields terminated by '\t';

2. Załaduj dane do tabeli wewnętrznej

    Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO table guruhive_internaltable;

3. Wyświetl zawartość tabeli

    Hive>select * from guruhive_internaltable;

4. Aby upuścić stół wewnętrzny

    Hive>DROP TABLE guruhive_internaltable;

Jeśli upuścisz guruhive_internaltable, łącznie z jego metadanymi i danymi, zostaną one usunięte z Hive.

Na poniższym zrzucie ekranu możemy zaobserwować wynik

Tabele wewnętrzne

W powyższym kodzie i na zrzucie ekranu wykonujemy następujące czynności:

  • Utwórz tabelę wewnętrzną
  • Załaduj dane do tabeli wewnętrznej
  • Wyświetl zawartość tabeli
  • Aby usunąć tabelę wewnętrzną

Tabele zewnętrzne

  • Stół zewnętrzny ma charakter luźno powiązany. Dane będą dostępne w HDFS.Tabela zostanie utworzona na danych HDFS.
  • Inaczej można powiedzieć jakby to było jego tworzenie schemat na danych.
  • W momencie upuszczenia tabeli usuwany jest tylko schemat, dane będą nadal dostępne w HDFS, jak poprzednio.
  • Tabele zewnętrzne umożliwiają tworzenie wielu schematów danych przechowywanych w systemie HDFS zamiast usuwania danych za każdym razem, gdy schemat jest aktualizowany

Kiedy wybrać stół zewnętrzny?

  • Jeśli przetwarzane są dane dostępne w HDFS
  • Przydatne, gdy pliki są używane poza Hive

Przykładowy fragment kodu dla tabeli zewnętrznej

1. Utwórz tabelę zewnętrzną

Hive>CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING)
	 Row format delimited
	 Fields terminated by '\t'
	 LOCATION '/user/guru99hive/guruhive_external;

2. Jeżeli w momencie tworzenia tabeli nie określimy lokalizacji, możemy wczytać dane ręcznie

    Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO TABLE guruhive_external;

3. Wyświetl zawartość tabeli

  Hive>select * from guruhive_external;

4. Aby upuścić stół wewnętrzny

  Hive>DROP TABLE guruhive_external;

Na poniższym zrzucie ekranu możemy zaobserwować wynik

Stoły zewnętrzne

W powyższym kodzie wykonujemy następujące czynności

  • Utwórz tabelę zewnętrzną
  • Załaduj dane do tabeli zewnętrznej
  • Wyświetl zawartość tabeli
  • Upuszczanie stołu zewnętrznego

Różnica między tabelami wewnętrznymi i zewnętrznymi

Cecha Wewnętrzne Zewnętrzny
schemat Dane na schemacie Schemat na danych
Miejsce przechowywania /usr/hive/magazyn Lokalizacja HDFS
Dostępność danych W lokalnym systemie plików W ramach HDFS

Podsumuj ten post następująco: