Hive ETL: JSON, XML, szöveges adatpéldák betöltése
Hive, mint ETL és adattárház-eszköz a tetején Hadoop Az ökoszisztéma olyan funkciókat kínál, mint az adatmodellezés, adatkezelés, adatfeldolgozás és adatlekérdezés. Az adatkinyerés a Hive-ben táblák létrehozását jelenti a Hive-ben, valamint strukturált és félig strukturált adatok betöltését, valamint adatok lekérdezését a követelmények alapján.
A kötegelt feldolgozáshoz egyéni definiált szkripteket fogunk írni egy egyéni leképezés segítségével, és csökkenteni fogjuk a szkripteket egy szkriptnyelv használatával. Ez biztosítja SQL mint a környezet és az egyszerű lekérdezés támogatása.
Strukturált adatok kezelése Hive használatával
A strukturált adatok azt jelentik, hogy az adatok a megfelelő sorok és oszlopok formátumában vannak. Ez inkább hasonló RDBMS adatok megfelelő sorokkal és oszlopokkal.
Itt fogjuk betölteni a Hive szövegfájljaiban található strukturált adatokat
Step 1) Ebben a lépésben létrehozzuk az „employees_guru” táblát olyan oszlopnevekkel, mint az Id, Név, Életkor, Cím, Fizetés és Osztály az alkalmazottak adattípusaival.
A fenti képernyőképen a következőket figyelhetjük meg:
- Az „employees_guru” tábla létrehozása
- Adatok betöltése az Employees.txt fájlból az „employees_guru” táblába
Step 2) Ebben a lépésben a „Select” paranccsal jelenítjük meg a táblázatban tárolt tartalmat. 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 Hive használatával (XML, JSON)
A Hive ETL-funkciókat hajt végre a Hadoop-ökoszisztémában úgy, mint ETL eszköz. Bizonyos típusú alkalmazásokban nehézkes lehet a térképcsökkentés végrehajtása, a Hive csökkentheti a komplexitást, és a legjobb megoldást nyújtja az informatikai alkalmazások számára az adattárház szektorban.
A félig strukturált adatok, például az XML és a JSON kevésbé bonyolultan feldolgozhatók a Hive használatával. Először is meglátjuk, hogyan használhatjuk a Hive-t XML.
XML TO HIVE TABLE
Ebben az XML-adatokat fogjuk betölteni a Hive-táblázatokba, és lekérjük az XML-címkékben tárolt értékeket.
Step 1) „xmlsample_guru” tábla létrehozása str oszloppal, karakterlánc adattípussal.
A fenti képernyőképből a következőket figyelhetjük meg
- Az „xmlsample_guru” tábla létrehozása
- Adatok betöltése a test.xml fájlból az „xmlsample_guru” táblába
Step 2) <p></p> XPath () módszerrel le tudjuk majd kérni az XML címkékben tárolt adatokat.
A fenti képernyőképből a következőket figyelhetjük meg
- Az XPATH( ) metódussal lekérjük az /emp/esal/ és /emp/ename/ alatt tárolt értékeket.
- Az értékek az Inside XML címkéket tartalmazzák. 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.
Step 3) 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épből 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 ez az „emp” szülőcímke, az „ename” és az „esal” pedig 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 adatai JSON formátumban kerülnek tárolásra. Amikor megpróbálunk adatokat lekérni online szerverekről, JSON-fájlokat ad vissza. A Hive adattárként való használatával JSON-adatokat tölthetünk be Hive-táblázatokba sémák létrehozásával.
JSON TO HIVE TABLE
Ebben JSON-adatokat fogunk betölteni Hive-táblázatokba, és lekérjük a JSON-sémában tárolt értékeket.
Step 1) Ebben a lépésben létrehozzuk a „json_guru” JSON-tábla nevét. A létrehozás után betölti és megjeleníti az aktuális séma tartalmát.
A fenti képernyőképből a következőket figyelhetjük meg
- A „json_guru” tábla létrehozása
- Adatok betöltése a test.json fájlból a „json_guru” táblába
- A json_guru táblákban tárolt JSON-fájl tényleges sémájának megjelenítése
Step 2) A get_json_object() metódus segítségével 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
- A get_json_object (str,'$.ecode) használatával lekérheti az ecode értékeket a json_guru táblából. Hasonló módon a get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) használatával lekéri az ename sal értékeket a json_guru táblából
- A JSON-hierarchiában tárolt értékek a json_guru-ban
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 TO HIVE TÁBLÁZAT
Ebben az összetett JSON-adatokat fogjuk betölteni a Hive-táblázatokba, és lekérjük a JSON-sémában tárolt értékeket.
Step 1) Complexjson_guru létrehozása egyetlen oszlopos mezővel
A fenti képernyőképből a következőket figyelhetjük meg
- Létrehozás a complexjson_guru táblán egy oszlopos mezővel, mint karakterlánc adattípussal
- Adatok betöltése a complexjson_guru fájlba az emp.json komplex JSON-fájlból
Step 2) 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-ban tárolt adatok kimenetét.
Step 3) Ebben a lépésben a „Select” paranccsal ténylegesen láthatjuk 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;
Hive in Real Time projektek – Mikor és hol használjuk
Mikor és hol kell használni a kaptárt a Hadoop ökoszisztémán:
Amikor
- Ha erős és hatékony statisztikai függvényekkel dolgozik a Hadoop ökoszisztémán
- Strukturált és félig strukturált adatfeldolgozás során
- Adattárház-eszközként a Hadoop segítségével
- Valós idejű adatbevitel a HBASE-val, a Hive használható
Hol
- Az ETL és az adattárház eszköz használatának megkönnyítése érdekében
- SQL típusú környezet biztosítása és az SQL-hez hasonló lekérdezés a HIVEQL használatával
- Egyéni meghatározott leképezési és szűkítő szkriptek használata és telepítése az adott ügyfélkövetelményekhez