Jak odzyskać utraconą tabelę w Hive? [Hive + HDFS]

Z grubsza ogarniesz to w: 1 min

Opis Hive: Apache Hive to technologia, która jest pewnego rodzaju “nakładką” na HDFS oraz wiele innych systemów plików. Pozwala zbudować data warehouse, wykorzystując storage na którym już pracujemy – np. właśnie HDFS.

Problem: Jak odzyskać tabelę w Hive, jeśli niechcący ją usunęliśmy?

Rozwiązanie (HDFS) #

Rozwiązanie to możemy wykorzystać, jeśli korzystamy z HDFS i mamy skonfigurowany śmietnik (Thrash).

Całość sprowadza się do 3 kroków:

  1. Lokalizowanie utraconych danych
  2. Przywrócenie metdanych w Metastore
  3. Załadowanie ponowne danych

Lokalizowanie danych #

Dla każdego użytkownika śmietnik znajduje się pod adresem HDFS /user/[nazwa_użytkownika]/.Trash. Znajdziemy tam, przez jakiś czas, wszystkie dane które usunęliśmy – a więc także naszą tabelę Hivową!

Pod tym adresem pojawi się folder z całą strukturą folderu tabeli, którą Hive trzymał na HDFS. Na przykład, dla użytkownika maro i tabeli maro_db.users_table, pliki będzie można znaleźć pod adresem /user/maro/.Trash/Current/user/hive/warehouse/maro_db/users_table. Zakładam tu, że na HDFS “źródłem” Hive’a jest /user/hive/warehouse.\

Przywracanie metadanych #

Niestety, mimo że mamy dostęp do danych, nie mamy jeszcze tabeli w rozumieniu Hive’a. Aby to zrobić, musimy odbudować metadane w naszym Metastore.

Aby to zrobić, tworzymy ponownie tabelę poleceniem CREATE TABLE. Ważne, aby utworzyć dokładnie taką samą tabelę (nazwa i definicje kolumn) jak była wcześniej.

Np.
CREATE TABLE maro_db.users_table (id INT, name STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Ładowanie tabeli #

Musimy teraz załadować dane, które są w naszym śmietniku (jeśli Hive nie będzie miał dostępu do śmietnika, należy je najpierw przenieść gdzieś indziej, a następnie usunąć)

LOAD DATA INPATH "/user/maro/.Trash/Current/user/hive/warehouse/maro_db/users_table" INTO TABLE "maro_db.users_table";

Można także spróbować przekopiować dane, ale lepszym pomysłem będzie wykorzystanie dedykowanego polecenia Hive’a.

Daj koniecznie znać w komentarzu, czy materiał okazał się przydatny!

Responses

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *