Hive ETL: JSON, XML, szöveges adatpéldák betöltése
⚡ Okos összefoglaló
A Hive ETL szöveges, XML és JSON fájlokat alakít lekérdezhető táblázatokká a Hive-ba és ex-be való betöltésükkel.tracértékek kinyerése az xpath() és a get_json_object() függvényekkel, így az elemzők egy SQL interfészt kapnak félig strukturált Hadoop adatokon keresztül.

A Hive, mint ETL és adattárház eszköz a rendszer tetején Hadoop Az ökoszisztéma olyan funkciókat biztosít, mint az adatmodellezés, az adatmanipuláció, az adatfeldolgozás és az adatlekérdezés. AdatböngészéstracA Hive-ban a bevitel táblák létrehozását, strukturált és félig strukturált adatok betöltését, valamint az adatok lekérdezését jelenti a követelmények alapján.
Kötegelt feldolgozáshoz egyénileg definiált szkripteket fogunk írni egyéni map használatával, és szkriptnyelven redukáljuk a szkripteket. Ez egy 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 adat azt jelenti, hogy az adatok a megfelelő sor- és oszlopformátumban vannak. Ez inkább a következőhöz 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épből 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” parancs segítségével 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 adatokkal való munka Hive használatával (XML, JSON)
A Hive ETL funkciókat lát el a Hadoop ökoszisztémában azáltal, hogy egy ETL eszközBizonyos alkalmazástípusokban nehézkes lehet a MapReduce végrehajtása; a Hive csökkentheti ezt a bonyolultságot, és a legjobb megoldást kínálja az IT-alkalmazások számára az adattárház szektor szempontjából.
A félig strukturált adatok, mint például az XML és a JSON, kevésbé bonyolultan feldolgozhatók a Hive segítségével. Először megnézzük, hogyan használhatjuk a Hive-ot a következőkre: XML.
XML-ből Hive táblába
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 adattípusú str oszloppal.
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) az XPath Az xpath() metódussal lekérhetjük 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ódus használatával lekérjük az /emp/esal/ és /emp/ename/ alatt tárolt értékeket.
- XML címkékben található értékek. Ebben a lépésben az „xmlsample_guru” táblázatban XML címkék alatt tárolt tényleges értékeket jelenítjük meg.
Megjegyzendő, hogy az xpath() függvény karakterláncok tömbjét adja vissza; az xpath_string(), az xpath_int() és az xpath_double() függvények pedig egyetlen típusos értéket adnak vissza.
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 annak a szülőcímke az „emp”, az alárendelt címkék pedig az „ename” és az „esal”.
Code töredék:
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 közösségi média és a weboldalak adatait általában JSON formátumban tárolják. Amikor online szerverekről próbálunk adatokat letölteni, JSON fájlokat adunk vissza. A Hive adattárolóként való használatával sémák létrehozásával JSON adatokat tölthetünk be a Hive táblázatokba.
JSON-ból Hive táblába
Ebben JSON adatokat fogunk betölteni a Hive táblákba, és lekérjük a JSON sémában tárolt értékeket.
Step 1) Ebben a lépésben létrehozunk egy „json_guru” nevű JSON-táblát. Létrehozás után betöltjük és megjelenítjük a tényleges 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ában 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 a json_guru táblából kérhető le az ecode értékek. Hasonlóképpen, a get_json_object(str,'$.ename') és a get_json_object(str,'$.sal') használatával a json_guru táblából kérhető le az ename és sal értékek.
- A JSON hierarchiában a json_guru fájlban tárolt értékek
Mivel a get_json_object() függvény hívásonként egyszer elemzi a dokumentumot, a json_tuple() függvény olcsóbb, ha több kulcsra van szükség, és egy JSON SerDe függvény a dokumentumot betöltéskor típusos oszlopokra képezi le.
Code töredék
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 json_guru; 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-ból Hive táblába
Ebben a lépésben összetett JSON adatokat fogunk betölteni a Hive táblákba, és lekérjük a JSON sémában tárolt értékeket.
Step 1) Egyetlen oszlopmezővel rendelkező complexjson_guru létrehozása.
A fenti képernyőképből a következőket figyelhetjük meg:
- Egyetlen oszlopmezővel karakterlánc adattípusú complexjson_guru tábla létrehozása
- Adatok betöltése a complexjson_guru-ba 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” parancs használatával megtekinthetjü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;
Hive valós idejű projektekben – Mikor és hol használható
Mikor és hol használjuk a Hive-ot a Hadoop ökoszisztémában:
Amikor
- Ha erős és hatékony statisztikai függvényekkel dolgozunk a Hadoop ökoszisztémán
- Strukturált és félig strukturált adatfeldolgozás esetén
- Adattárház eszközként Hadoop segítségével
- Valós idejű adatfeldolgozás HBase-zel, ahol a Hive is használható
Hol
- Az ETL és adattárház eszközként való egyszerű használat érdekében
- SQL típusú környezet biztosítása és SQL-hez hasonló lekérdezések HiveQL használatával
- Egyénileg megadott térkép- és reduktorszkriptek használata és telepítése adott ügyféligényekhez










