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.
Ze zrzutu ekranu powyżej możemy zaobserwować następujące rzeczy:
- Utworzenie tabeli „employees_guru”
- Ł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.
– 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.
Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy
- Utworzenie tabeli „xmlsample_guru”
- Ładowanie danych z pliku test.xml do tabeli „xmlsample_guru”
Krok 2) Korzystanie z XPath () będziemy mogli pobrać dane zapisane w tagach XML.
Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy
- Używając metody XPATH() pobieramy wartości przechowywane w /emp/esal/ i /emp/ename/
- 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”.
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.
Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy
- Utworzenie tabeli „json_guru”
- Ładowanie danych z test.json do tabeli „json_guru”
- 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
Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy
- 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
- 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
Na powyższym zrzucie ekranu możemy zaobserwować następujące rzeczy
- Tworzenie w tabeli complexjson_guru z pojedynczym polem kolumny jako typem danych string
- Ł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.
Krok 3) Na tym etapie, używając polecenia „Select”, możemy zobaczyć złożone dane JSON zapisane 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;
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










