Hive ETL: ładowanie JSON, XML, przykładów danych tekstowych

Spisie treści:

Anonim

Hive jako narzędzie ETL i hurtowni danych na szczycie ekosystemu Hadoop zapewnia funkcje, takie jak modelowanie danych, manipulacja danymi, przetwarzanie danych i zapytania dotyczące danych. Wyodrębnianie danych w Hive oznacza tworzenie tabel w Hive i ładowanie ustrukturyzowanych i częściowo ustrukturyzowanych danych, a także wysyłanie zapytań do danych na podstawie wymagań.

W przypadku przetwarzania wsadowego będziemy pisać niestandardowe zdefiniowane skrypty przy użyciu niestandardowej mapy i zredukować liczbę skryptów za pomocą języka skryptowego. Zapewnia środowisko podobne do SQL i obsługę łatwych zapytań.

W tym samouczku nauczysz się:

  • Praca z danymi strukturalnymi za pomocą Hive
  • Praca z częściowo ustrukturyzowanymi danymi przy użyciu Hive (XML, JSON)
  • Rój w projektach czasu rzeczywistego - kiedy i gdzie używać

Praca z danymi strukturalnymi za pomocą Hive

Dane strukturalne oznaczają, że dane mają odpowiedni format wierszy i kolumn. To bardziej przypomina dane RDBMS z odpowiednimi wierszami i kolumnami.

Tutaj zamierzamy załadować dane strukturalne obecne w plikach tekstowych w Hive

Krok 1) W tym kroku tworzymy tabelę „workers_guru” z nazwami kolumn, takimi jak Id, Imię, Wiek, Adres, Wynagrodzenie i Dział pracowników z typami danych.

Na powyższym zrzucie ekranu możemy zaobserwować, co następuje:

  1. Stworzenie tabeli „workers_guru”
  2. Ładowanie danych z Employees.txt do tabeli „workers_guru”

Krok 2) W tym kroku wyświetlamy zawartość przechowywaną w tej tabeli za pomocą polecenia „Wybierz”. Zawartość tabeli możemy obserwować na poniższym zrzucie ekranu.

- Przykładowy fragment kodu

Zapytania do wykonania

1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING)> Row format delimited> Fields terminated by ',';2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;3) select * from employees_guru;

Praca z częściowo ustrukturyzowanymi danymi przy użyciu Hive (XML, JSON)

Hive wykonuje funkcje ETL w ekosystemie Hadoop, działając jako narzędzie ETL. Redukcja map może być trudna w niektórych typach aplikacji, Hive może zmniejszyć złożoność i zapewnia najlepsze rozwiązanie dla aplikacji IT pod względem sektora hurtowni danych.

Półstrukturalne dane, takie jak XML i JSON, można przetwarzać z mniejszą złożonością przy użyciu Hive. Najpierw zobaczymy, jak możemy używać Hive for XML.

XML TO HIVE TABLE

W tym celu załadujemy dane XML do tabel Hive i pobierzemy wartości przechowywane w znacznikach XML.

Krok 1) Utworzenie tabeli „xmlsample_guru” z kolumną str z danymi typu string.

Na powyższym zrzucie ekranu możemy zauważyć, co następuje

  1. Utworzenie tabeli „xmlsample_guru”
  2. Ładowanie danych z pliku test.xml do tabeli „xmlsample_guru”

Krok 2) Używając metody XPath () będziemy mogli pobrać dane przechowywane w znacznikach XML.

Na powyższym zrzucie ekranu możemy zauważyć, co następuje

  1. Używając metody XPATH () pobieramy wartości przechowywane w / emp / esal / i / emp / ename /
  2. Wartości obecne w tagach Inside XML. W tym kroku wyświetlamy rzeczywiste wartości przechowywane pod tagami XML w tabeli „xmlsample_guru”

Krok 3) W tym kroku pobierzemy i wyświetlimy nieprzetworzony kod XML tabeli „xmlsample_guru”.

Na powyższym zrzucie ekranu możemy zauważyć, co następuje

  • Rzeczywiste dane XML wyświetlane z tagami
  • Jeśli obserwujemy pojedynczy tag, mamy do czynienia z tagiem nadrzędnym „emp”, a tagami podrzędnymi „ename” i „esal”.

Fragment kodu:

Zapytania do wykonania

1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru;3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;

JSON (notacja obiektu JavaScript)

Dane z Twittera i stron internetowych są przechowywane w formacie JSON. Za każdym razem, gdy spróbujemy pobrać dane z serwerów online, zwróci pliki JSON. Używając Hive jako magazynu danych, możemy ładować dane JSON do tabel Hive, tworząc schematy.

TABELA JSON DO ULEJU

W tym celu załadujemy dane JSON do tabel Hive i pobierzemy wartości przechowywane w schemacie JSON.

Krok 1) W tym kroku utworzymy nazwę tabeli JSON „json_guru”. Po utworzeniu ładowanie i wyświetlanie zawartości rzeczywistego schematu.

Na powyższym zrzucie ekranu możemy zauważyć, co następuje

  1. Utworzenie tabeli „json_guru”
  2. Ładowanie danych z test.json do tabeli „json_guru”
  3. Wyświetlanie aktualnego schematu pliku JSON przechowywanego w tabelach json_guru

Krok 2) Za pomocą metody get_json_object () możemy pobrać wartości danych przechowywane w hierarchii JSON

Na powyższym zrzucie ekranu możemy zaobserwować, co następuje

  1. Używając get_json_object (str, '$. Ecode), może pobrać wartości ecode z tabeli json_guru. Podobnie używając get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) pobierze wartości sal z tabeli json_guru
  2. Wartości przechowywane w hierarchii JSON w json_guru

Fragment kodu

Zapytania do wykonania

1) create table json_guru(str string);2) load data inpath 'home/hduser/test.json' into table json_guru;3) select * from json1;4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;

Złożona tabela JSON TO HIVE

W tym celu załadujemy złożone dane JSON do tabel Hive i pobierzemy wartości przechowywane w schemacie JSON

Krok 1) Tworzenie complexjson_guru z pojedynczym polem kolumny

Na powyższym zrzucie ekranu możemy zauważyć, co następuje

  1. Tworzenie w tabeli complexjson_guru z polem jednokolumnowym jako ciągiem danych
  2. Ładowanie danych do complexjson_guru ze złożonego pliku JSON emp.json

Krok 2) Używając get_json_object, możemy pobrać rzeczywistą zawartość przechowywaną w hierarchii plików JSON.

Na poniższym zrzucie ekranu możemy zobaczyć dane wyjściowe przechowywane w pliku complexjson_guru.

Krok 3) Na tym etapie za pomocą polecenia „Wybierz” faktycznie możemy zobaczyć złożone dane JSON przechowywane w tabeli „complexjson_guru”

-Przykładowy fragment kodu,

Zapytania do wykonania

1) create table complexjson_guru(json string);2) load data inpath 'home/hduser/emp.json' into table complexjson_guru;3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru;4) select * from complexjson_guru;

Rój w projektach czasu rzeczywistego - kiedy i gdzie używać

Kiedy i gdzie używać Hive w ekosystemie Hadoop:

Gdy

  • Podczas pracy z silnymi i potężnymi funkcjami statystycznymi w ekosystemie Hadoop
  • Podczas pracy z przetwarzaniem danych ustrukturyzowanych i częściowo ustrukturyzowanych
  • Jako narzędzie hurtowni danych z Hadoop
  • Można użyć pozyskiwania danych w czasie rzeczywistym za pomocą HBASE, Hive

Gdzie

  • Ułatwia korzystanie z ETL i narzędzia do hurtowni danych
  • Zapewnienie środowiska typu SQL i wykonywanie zapytań takich jak SQL przy użyciu HIVEQL
  • Aby używać i wdrażać niestandardowe, określone skrypty map i reduktorów dla określonych wymagań klienta