Wprowadzenie do zewnętrznej tabeli w ulu
tabela zewnętrzna jest tabelą opisującą schemat lub metadane plików zewnętrznych. Zasadniczo istnieją dwa rodzaje tabel w zarządzanych przez HIVE lub tabel wewnętrznych i tabel zewnętrznych. Głównym celem definiowania zewnętrznej tabeli jest dostęp i wykonywanie zapytań na danych przechowywanych poza Ula. Te pliki danych mogą być przechowywane w innych narzędziach, takich jak Pig, Azure storage Volumes (ASV) lub w dowolnej zdalnej lokalizacji HDFS. Hive zakłada, że nie posiada własności do danych dla tabel zewnętrznych, a zatem nie wymaga zarządzania danymi jak w tabel zarządzanych lub wewnętrznych. Ponadto w przypadku tabel zewnętrznych dane nie są usuwane po upuszczeniu tabeli.
Praca i tworzenie zewnętrznych tabel w ulu
domyślnie w ulu tworzony jest katalog tabel w katalogu bazy danych. Wyjątkiem jest domyślna baza danych. Lokalizacja user / hive / warehouse nie ma katalogu, więc domyślne tabele bazy danych będą miały swój katalog utworzony bezpośrednio pod tą lokalizacją. Zaleca się tworzenie zewnętrznych tabel, jeśli nie chcemy używać domyślnej lokalizacji.
rozpocznij bezpłatny kurs nauki o danych
Hadoop, Data Science, Statistics& inne
zewnętrzna tabela jest zwykle używana, gdy dane znajdują się poza ula.
stwórzmy tabelę zewnętrzną używając słowa kluczowego „EXTERNAL” za pomocą poniższego polecenia.
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
Wyjście:
zewnętrzna tabela może być również utworzona przez skopiowanie schematu i danych istniejącej tabeli za pomocą poniższego polecenia:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
Jeżeli pominiemy słowo kluczowe external, wtedy wytworzona nowa tabela będzie zewnętrzna, jeżeli tabela bazowa jest zewnętrzna. Podobnie, jeśli tabela bazowa jest zarządzana za pomocą słowa kluczowego external, Nowa utworzona tabela będzie zewnętrzna.
aby określić typ tworzonej tabeli, można użyć klauzuli DESCRIBE FORMATTED. Na końcu szczegółowego opisu tabeli typ tabeli wyjściowej będzie „zarządzana tabela” lub „tabela zewnętrzna”.
tabele partycjonowane pomagają w dzieleniu danych na logiczne podgrupy lub partycje, zwiększając wydajność zapytań. Można utworzyć tabelę podzieloną na partycje, jak pokazano poniżej.
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
Wyjście:
mogą wystąpić przypadki zmiany partycji lub struktury zewnętrznej tabeli, wtedy za pomocą tego polecenia można odświeżyć informacje o metadanych:
MSCK REPAIR TABLE external_table_name
1. Partycjonowana tabela zewnętrzna
podczas tworzenia nie partycjonowanej tabeli zewnętrznej wymagana jest klauzula LOCATION. Ale w przypadku partycjonowanej tabeli zewnętrznej nie jest to wymagane. Instrukcja ALTER TABLE jest wymagana, aby dodać partycje wraz z klauzulą LOCATION.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
z Hive v0.8.0 dalej, wiele partycji może być dodanych w tym samym zapytaniu. Ponadto lokalizację partycji można zmienić za pomocą poniższego zapytania, bez przenoszenia lub usuwania danych ze starej lokalizacji.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
aby upuścić partycję, użyj poniższego zapytania:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
To polecenie usunie dane i metadane partycji dla zarządzanych lub wewnętrznych tabel. Jednak w przypadku tabel zewnętrznych dane nie są usuwane.
2. Operacje na zewnętrznej tabeli
operacje takie jak SELECT, JOINS, ORDER BY, GROUP BY, CLUSTER BY i inne są zaimplementowane na zewnętrznych tabelach. Tabele zewnętrzne można łatwo łączyć z innymi tabelami w celu wykonywania złożonych manipulacji danymi. Koncepcje partycjonowania, bucketingu i indeksowania są również zaimplementowane w tabelach zewnętrznych w taki sam sposób, jak w tabelach zarządzanych lub wewnętrznych. Wszystkie właściwości konfiguracyjne w Hive mają również zastosowanie do zewnętrznych tabel. Na przykład przez ustawienie skip.nagłówek.Kolejka. Count = 1, możemy pominąć wiersz nagłówka z pliku danych.
wszystkie formaty plików, takie jak ORC, AVRO, TEXTFILE, SEQUENCE FILE lub PARQUET są obsługiwane dla wewnętrznych i zewnętrznych tabel Hive. Podczas tworzenia tabeli, mapowanie pozycji jest używane do wstawiania danych do kolumny, a kolejność jest utrzymywana.
typy danych w tabelach zewnętrznych: w tabelach zewnętrznych typy danych kolekcji są również obsługiwane wraz z prymitywnymi typami danych (takimi jak integer, string, character). Konieczne jest określenie ograniczników elementów typów danych kolekcji (takich jak tablica, struct i map).
kiedy używać tabel zewnętrznych w Hive?
ogólnie, wewnętrzne tabele są tworzone w Hive. Ale w przypadku niektórych scenariuszy pomocna może być tabela zewnętrzna. Są to:
- gdy dane są umieszczane poza lokalizacją Hive lub HDFS, tworzenie zewnętrznej tabeli pomaga, ponieważ inne narzędzia, które mogą używać tabeli, nie blokują tych plików.
- tabelę zewnętrzną można wytworzyć, gdy Danych nie ma w żadnej istniejącej tabeli (tzn. przy użyciu klauzuli SELECT).
- zewnętrzna tabela musi zostać utworzona, jeśli nie chcemy, aby Hive był właścicielem danych lub miał inne kontrolki danych.
- tabela zewnętrzna zapobiega również przypadkowej utracie danych, ponieważ przy upuszczeniu tabeli zewnętrznej dane bazowe nie są usuwane. Działa to jako funkcja bezpieczeństwa w ulu. To jest powód, dla którego TRUNCATE nie będzie działać również dla tabel zewnętrznych.
funkcje
istnieją pewne funkcje w Hive, które są dostępne tylko dla zarządzanych lub zewnętrznych tabel. Są to:
- polecenia takie jak ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE / MERGE działają tylko dla tabel wewnętrznych.
- kwas działa tylko dla zarządzanych lub wewnętrznych tabel.
- klauzula DROP usunie tylko metadane dla tabel zewnętrznych. Jednak usuwa Podstawowe Dane również dla tabel wewnętrznych.
- buforowanie wyników zapytań jest możliwe tylko dla zarządzanych tabel.
- ograniczenie polegania jest dozwolone tylko w tabelach zewnętrznych.
- niektóre funkcje widoków materializowanych działają tylko dla zarządzanych tabel.
podsumowanie
w tym samouczku zobaczyliśmy, kiedy i jak używać zewnętrznych tabel w Hive. Najważniejsze w tym samouczku jest stworzenie tła na tabelach innych niż zarządzane i analizowanie danych poza Ula.
Polecane artykuły
jest to przewodnik po zewnętrznej tabeli w ulu. Tutaj dyskutujemy o wprowadzeniu zewnętrznych tabel w ulu oraz o funkcjach i zapytaniach. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-
- Partycjonowanie w Hive
- Mapa Dołącz do Hive
- typy danych Hive
- instalacja Hive
- Przewodnik po klastrze Hive przez