Hive ETL: JSON, XML, szöveges adatpéldák betöltése

Tartalomjegyzék:

Anonim

A Hive mint ETL és adattárház eszköz a Hadoop ökoszisztéma tetején olyan funkciókat biztosít, mint az adatmodellezés, az adatkezelés, az adatfeldolgozás és az adatok lekérdezése. Az adatkivonás a kaptárban táblák létrehozását jelenti a kaptárban, strukturált és félig strukturált adatok betöltését, valamint az adatok lekérdezését a követelmények alapján.

Kötegelt feldolgozáshoz egyedi definiált szkripteket fogunk írni egyedi térkép segítségével, és szkripteket szkriptnyelv használatával csökkentjük. SQL-szerű környezetet és támogatást nyújt az egyszerű lekérdezéshez.

Ebben az oktatóanyagban megtanulja-

  • Strukturált adatok kezelése a Hive használatával
  • Félig strukturált adatok kezelése a Hive (XML, JSON) használatával
  • Kaptár valós idejű projektekben - mikor és hol használható

Strukturált adatok kezelése a Hive használatával

A strukturált adatok azt jelentik, hogy az adatok a sorok és oszlopok megfelelő formátumában vannak. Ez inkább olyan, mint az RDBMS-adatok megfelelő sorokkal és oszlopokkal.

Itt a Hive szövegfájljaiban lévő strukturált adatokat töltjük be

1. lépés: Ebben a lépésben létrehozzuk az "alkalmazottak_guru" táblázatot olyan oszlopnevekkel, mint az azonosító, név, életkor, cím, fizetés és az adattípusú alkalmazottak osztálya.

A fenti képernyőkép alapján a következőket figyelhetjük meg:

  1. Az "alkalmazottak_guru" táblázat létrehozása
  2. Adatok betöltése az Employees.txt fájlból az "alkalmazottak_guru" táblába

2. lépés) Ebben a lépésben a "Select" paranccsal jelenítjük meg a táblázatban tárolt tartalmakat. A táblázat tartalmát a következő képernyőképen figyelhetjük meg.

- Minta kódrészlet

Elvégzendő lekérdezések

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;

Félig strukturált adatok kezelése a Hive (XML, JSON) használatával

A Hive elvégzi az ETL funkciókat a Hadoop ökoszisztémában azáltal, hogy ETL eszközként működik. Nehéz lehet végrehajtani a térképcsökkentést bizonyos típusú alkalmazásoknál, a Hive csökkentheti a komplexitást és az adattárházi szektor szempontjából a legjobb megoldást kínálja az informatikai alkalmazások számára.

A félig strukturált adatok, például az XML és a JSON, a Hive használatával kevesebb bonyolultsággal dolgozhatók fel. Először meglátjuk, hogyan használhatjuk a Hive-t XML-hez.

XML a HIVE TÁBLÁZATHOZ

Ebben az esetben XML adatokat töltünk be a Hive táblákba, és lekérjük az XML címkékben tárolt értékeket.

1. lépés : Az "xmlsample_guru" tábla létrehozása str oszloppal string karakterlánccal.

A fenti képernyőkép alapján a következőket figyelhetjük meg

  1. Az "xmlsample_guru" tábla létrehozása
  2. Adatok betöltése a test.xml fájlból az "xmlsample_guru" táblába

2. lépés: Az XPath () módszerrel képesek leszünk lekérni az XML címkékben tárolt adatokat.

A fenti képernyőkép alapján a következőket figyelhetjük meg

  1. Az XPATH () módszerrel lekérjük az / emp / esal / és / emp / ename / könyvtárban tárolt értékeket.
  2. Az értékek az XML címkék belsejében vannak. Ebben a lépésben az XML címkék alatt tárolt tényleges értékeket jelenítjük meg az "xmlsample_guru" táblában

3. lépés: Ebben a lépésben lekérjük és megjelenítjük az "xmlsample_guru" tábla nyers XML-jét.

A fenti képernyőkép alapján a következőket figyelhetjük meg

  • A tényleges XML adatok megjelenítése címkékkel
  • Ha egyetlen címkét figyelünk meg, akkor az "emp" a szülőcímke, az "ename" és az "esal" a gyermek címkék.

Kódrészlet:

Elvégzendő lekérdezések

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 (JavaScript objektum jelölés)

A Twitter és a webhelyek adatait JSON formátumban tároljuk. Amikor megpróbálunk adatokat lekérni online szerverekről, JSON fájlokat fog visszaadni. A Hive adattárolóként történő felhasználásával sémák létrehozásával JSON adatokat tölthetünk be a Hive táblákba.

JSON HIVE TÁBLÁZAT

Ebben JSON adatokat töltünk be a Hive táblákba, és lekérjük a JSON sémában tárolt értékeket.

1. lépés: Ebben a lépésben létrehozni fogjuk a JSON tábla nevét "json_guru". Miután létrehozta a tényleges séma betöltését és megjelenítését.

A fenti képernyőkép alapján a következőket figyelhetjük meg

  1. A "json_guru" táblázat létrehozása
  2. Adatok betöltése a test.json fájlból a "json_guru" táblába
  3. A json_guru táblákban tárolt JSON-fájl tényleges sémájának megjelenítése

2. lépés: A get_json_object () metódus használatával lekérhetjük a JSON hierarchiában tárolt adatértékeket

A fenti képernyőképből a következőket figyelhetjük meg

  1. A get_json_object (str, '$. Ecode) használatával lekérheti az ecode értékeit a json_guru táblából. Hasonlóan a get_json_object (str, '$. Ename), a get_json_object (str,' $. Sali) használatával, ez az ename sal értékeket fogja lekérni a json_guru táblából.
  2. A JSON Hierarchia belsejében tárolt értékek a json_guru fájlban

Kódrészlet

Elvégzendő lekérdezések

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;

Komplex JSON HIVE TÁBLÁZAT

Ebben összetett JSON adatokat töltünk be a Hive táblákba, és lekérjük a JSON sémában tárolt értékeket

1. lépés: A complexjson_guru létrehozása egyetlen oszlopmezővel

A fenti képernyőkép alapján a következőket figyelhetjük meg

  1. Létrehozás a complexjson_guru táblában, egyetlen oszlopmezővel string karaktertípusként
  2. Adatok betöltése a complexjson_guru fájlba az emp.json összetett JSON fájlból

2. lépés: A get_json_object használatával lekérhetjük a JSON fájlhierarchiában tárolt tényleges tartalmat.

A következő képernyőképen láthatjuk a complexjson_guru fájlban tárolt adatok kimenetét.

3. lépés) Ebben a lépésben a "Select" paranccsal valóban megnézhetjük a "complexjson_guru" táblában tárolt összetett JSON adatokat

-Minta kódrészlet,

Elvégzendő lekérdezések

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;

Kaptár valós idejű projektekben - mikor és hol használható

Mikor és hol kell használni a kaptárt a Hadoop ökoszisztémán:

Amikor

  • Ha a Hadoop-ökoszisztéma erős és hatékony statisztikai funkcióival dolgozik
  • Ha strukturált és félig strukturált adatfeldolgozással dolgozik
  • Adattárház eszközként a Hadoop segítségével
  • Valós idejű adatfogyasztás a HBASE, Hive segítségével használható

Hol

  • Az ETL és az adattárház eszköz egyszerű használatához
  • SQL típusú környezet biztosítása és az SQL-hez hasonló lekérdezés a HIVEQL használatával
  • Egyéni megadott térkép és reduktor szkriptek használata és telepítése az adott ügyfél követelményeinek megfelelően