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

Hive jako narzędzie ETL i hurtowni danych Hadoop ekosystem zapewnia funkcjonalności takie jak modelowanie danych, manipulacja danymi, przetwarzanie danych i zapytania dotyczące danych. Ekstrakcja danych w Hive oznacza tworzenie tabel w Hive i ładowanie ustrukturyzowanych i półustrukturyzowanych danych, a także wyszukiwanie danych na podstawie wymagań.

W przypadku przetwarzania wsadowego będziemy pisać niestandardowe zdefiniowane skrypty przy użyciu niestandardowej mapy i redukować skrypty przy użyciu języka skryptowego. To zapewnia SQL jak środowisko i obsługa łatwego wysyłania zapytań.

Praca z danymi strukturalnymi przy użyciu Hive

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

Tutaj załadujemy dane strukturalne obecne w plikach tekstowych w Hive

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

Praca z danymi strukturalnymi przy użyciu Hive

Ze zrzutu ekranu powyżej możemy zaobserwować następujące rzeczy:

  1. Utworzenie tabeli „employees_guru”
  2. Ładowanie danych z pliku Employees.txt do tabeli „employees_guru”

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

Praca z danymi strukturalnymi przy użyciu Hive

– 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. Może być trudno przeprowadzić redukcję map w niektórych typach aplikacji, Hive może zmniejszyć złożoność i zapewnić najlepsze rozwiązanie dla aplikacji IT w zakresie sektora magazynowania danych.

Półustrukturyzowane dane, takie jak XML i JSON, można przetwarzać z mniejszą złożonością za pomocą Hive. Najpierw zobaczymy, jak możemy użyć Hive do XML.

XML DO TABELI HIVE

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

Krok 1) Utworzenie tabeli „xmlsample_guru” z kolumną str o typie danych string.

Praca z częściowo ustrukturyzowanymi danymi przy użyciu Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

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

Krok 2) Korzystanie z XPath () będziemy mogli pobrać dane zapisane w tagach XML.

Praca z częściowo ustrukturyzowanymi danymi przy użyciu Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

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

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

Praca z częściowo ustrukturyzowanymi danymi przy użyciu Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

  • Rzeczywiste dane XML wyświetlane ze znacznikami
  • Jeśli obserwujemy pojedynczy tag, to ma on „emp” jako tag nadrzędny, a „ename” i „esal” jako tagi podrzędne.

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 (JavaNotacja obiektu skryptu)

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ócą pliki JSON. Używając Hive jako magazynu danych, możemy ładować dane JSON do tabel Hive, tworząc schematy.

JSON DO TABELI HIVE

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

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

Json do stołu Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

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

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

Json do stołu Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

  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 ename 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 do HIVE

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

Krok 1) Tworzenie complexjson_guru z polem pojedynczej kolumny

Złożona tabela Json do Hive

Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy

  1. Tworzenie w tabeli complexjson_guru z pojedynczym polem kolumny jako typem danych string
  2. Ładowanie danych do complexjson_guru z pliku JSON emp.json

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

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

Złożona tabela Json do Hive

Krok 3) Na tym etapie, używając polecenia „Select”, możemy zobaczyć złożone dane JSON zapisane w tabeli „complexjson_guru”

Złożona tabela Json do Hive

-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;

Hive w projektach czasu rzeczywistego – kiedy i gdzie używać

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

Kiedy

  • Podczas pracy z silnymi i wydajnymi funkcjami statystycznymi w ekosystemie Hadoop
  • Podczas pracy z przetwarzaniem danych strukturalnych i półstrukturalnych
  • Jako narzędzie hurtowni danych z Hadoop
  • Można zastosować pozyskiwanie danych w czasie rzeczywistym za pomocą HBASE i Hive

Gdzie

  • Dla ułatwienia korzystania z narzędzia ETL i hurtowni danych
  • Aby zapewnić środowisko typu SQL i wykonywać zapytania takie jak SQL przy użyciu HIVEQL
  • Używanie i wdrażanie niestandardowych określonych skryptów map i reduktorów dla konkretnych wymagań klienta

Podsumuj ten post następująco: