Bevezetés a HiveQL-be
A HiveQL, közismert nevén HQL, egy SQL-szerű lekérdezési nyelv nagy darabszámú adat feldolgozására a Hadoop környezetből. Az eredetileg a Facebook által 2007 körül kifejlesztett Hive később nyílt forrású Apache projektévé vált. Az adatanalitikusok körében népszerűvé váltak az SQL-hez hasonló szintaxisú kaptárak. A HiveQL a HDFS tárolására és a MapReduce felhasználására a feldolgozáshoz segít betekintést nyerni a minimális kódolási tapasztalattal rendelkező nagy adatfelhasználók számára. Különböző egyéb elosztott számítási motorok, például az Apache Tez és az Apache Spark használható a HiveQL-lel a nagyszabású adatanalitika gyorsabb feldolgozására. A HiveQL használatának különféle módjai: CLI (Command Line Interface), olyan kereskedelmi termékek, mint a Karmasphere, a Cloudera nyílt forráskódú Hue és a Qubole.
A HiveQL működése
A Hive SQL-szerű dialektust biztosít az adatkezeléshez, kiküszöböli azt az igényt, hogy alacsony szintű MapReduce-feladatokat írjunk az adatok letöltésére (a Mapper-en keresztül) és az összesített végeredményekre (a Reducer-modulokon keresztül).
-
Kaptár lekérdezés végrehajtása
A Hive lekérdezés végrehajtásával kapcsolatos lépések:
- A kaptárfelület (CLI-n vagy webes felhasználói felületen keresztül) megküldi a lekérdezést az illesztőprogramnak (amely JDBC, ODBC vagy Thrift Server) összeállítani, optimalizálni és végrehajtani. Ellenőrzi a lekérdezést egy fordítón keresztül a szintaxis és a végrehajtási terv szempontjából.
- A fordító kérést küld a Metastore-nak, és válaszként megkapja a metaadatokat.
- A fordító visszaadja a végrehajtási tervet az illesztőprogramnak, amely továbbküldi azt a Végrehajtó motornak.
- A végrehajtó motor kölcsönhatásba lép a Job Trackerrel, amely a Név csomópont, hogy elvégezze a munkát.
- Ezzel párhuzamosan a végrehajtó motor végrehajtja a Metaadat műveletet is.
- A névcsomópont elvégzi a feladatot a Feladatkövető vagy az Adat-csomópontok által.
- A végrehajtó motorral megosztott eredmények, amelyek az illesztőprogramon keresztül megjelennek az interfészen.
-
A lekérdezések optimalizálása
A HiveQL hangolása a lekérdezések jobb optimalizálása érdekében. Az alább megadott parancsok segítségével felülbírálhatjuk az alapértelmezett konfigurációkat, és lehetővé tehetjük a lekérdezés gyorsabb végrehajtását.
1 . SET hive.execution.engine = tez
Alapértelmezés szerint a végrehajtó motor Mapreduce-re van állítva, de kifejezetten tezre (csak a Hadoop 2 esetén) vagy Spark-ra (az 1.1-es kaptár 1.1-re) állíthatjuk.
2 SET hive.mapred.mode = húzza le
Ez a dinamikus particionáláshoz szükséges, amely nagy adatkészletek betöltésekor hasznos. A statikus particionálás azonban alapértelmezésként van beállítva, ami „szigorú” módban történik.
3 SET hive.vectorized.execution = igaz
set hive.vectorized.execution.enabled = true
A vektorizált lekérdezés-végrehajtás lehetővé teszi, hogy a –aggregátumok, a szűrők vagy az összekapcsolások 1024 soros tételekben történjenek egyszerre egyetlen sor helyett.
4 SET hive.auto.convert.join = igaz
Míg egy nagy adatkészlethez nagyon kis adatkészlettel csatlakozik, a térkép-csatlakozások hatékonyabbak, és a fenti paranccsal állíthatók be.
5 SET hive.exec.parallel = igaz
A MapReduce feladatokat párhuzamosan hajtják végre a Hadoopban. Időnként, ha a lekérdezések nem függenek egymástól, akkor a párhuzamos végrehajtást lehet előnyben részesíteni, ami jobb memóriakezelést eredményez.
6 SET hive.exec.compress.output = igaz
Ez lehetővé teszi a végső kimenet tömörített formátumban történő tárolását HDFS formátumban.
7 SET hive.exec.compress.output = igaz
Ez lehetővé teszi a végső kimenet tömörített formátumban történő tárolását HDFS formátumban.
A HiveQL tulajdonságai
- Mivel magas szintű nyelv, a Hive lekérdezéseket implicit módon átalakítják térképcsökkentő feladatokké vagy összetett DAG-kké (irányított aciklikus gráfok). A 'Magyarázza' kulcsszó segítségével a lekérdezés előtt megkapjuk a lekérdezési tervet.
- Gyorsabb lekérdezés-végrehajtás a metaadat-tárolóval, RDMS formátumban, és replikálja az adatokat, megkönnyítve a visszakeresést veszteség esetén.
- A bitmap indexelést a lekérdezések felgyorsítása érdekében végezzük.
- Fokozza a teljesítményt az adatok particionálásának lehetővé tétele révén.
- A Hive különféle típusú tömörített fájlokat képes feldolgozni, ezzel megtakarítva a lemezterületet.
- Karakterláncok, egész számok vagy dátumok manipulálására a HiveQL támogatja a felhasználó által definiált funkciók (UDF) kibővítését a beépített UDF-k által nem támogatott problémák megoldása érdekében.
- Számos további API-t kínál egy testreszabott lekérdező motor felépítéséhez.
- Különböző fájlformátumok, például Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro és Parquet támogatottak. Az ORC fájl formátuma a legalkalmasabb a lekérdezés teljesítményének javítására, mivel az adatokat a legoptimálisabban tárolja, ami a lekérdezés gyorsabb végrehajtásához vezet.
- Ez egy hatékony adatelemző és ETL eszköz nagy adatkészletekhez. 10. Könnyű lekérdezéseket írni, mivel hasonló az SQL-hez. A kaptárban lévő DDL (adatmeghatározási nyelv) parancsok a kaptárban található adatbázis vagy táblák szerkezetének meghatározására és megváltoztatására szolgálnak. Ezek a parancsok eldobhatók, létrehoznak, csonkolják, megváltoztatják, megmutatják vagy leírják.
korlátozások
- A kaptárkérelmek hosszabb késleltetéssel bírnak, mivel a Hadoop kötegorientált rendszer.
- A beágyazott vagy az alkérdések nem támogatottak.
- A frissítés, törlés vagy beszúrás nem hajtható végre rekordszinten.
- A valósidejű adatfeldolgozást vagy lekérdezést a HQL Hive Scope nem biztosítja.
Az adatok milliárdjaitól egészen milliárdnyi rekordig terjedő adatokkal a HiveQL nagy lehetőségeket kínál a nagy adatszakértők számára.
A HiveQL hatálya
Az alábbiakban bemutatjuk, hogy a HiveQL terjedelme kibővül, és jobban szolgálja a felhasználók által naponta előállított hatalmas adatok elemzésének célját.
Biztonság: A nagy adatok feldolgozása mellett a Hive adatbiztonságot is biztosít. Ez a feladat az elosztott rendszer számára összetett, mivel több összetevőre van szükség a kommunikációhoz. A Kerberos engedélyezési támogatás lehetővé teszi a hitelesítést az ügyfél és a szerver között.
Reteszelés: Hagyományosan, a kaptár nem reteszel sorokat, oszlopokat vagy lekérdezéseket. A kaptár felhasználhatja az Apache Állatkert-kezelőt a támogatás rögzítéséhez.
Munkafolyamat-kezelés : Az Apache Oozie egy munkafolyamat-ütemező, amely különböző HiveQL lekérdezéseket automatizál, egymást követve vagy párhuzamosan.
Megjelenítés: A Zeppelin notebook egy web alapú notebook, amely lehetővé teszi az interaktív adatelemzést. Támogatja a Hive és a Spark adatmegjelenítést és együttműködést.
Következtetés
A HiveQL-et széles körben használják a szervezetekben az összetett használati esetek megoldására. A nyelv sajátosságait és korlátozásait szem előtt tartva, a kaptár lekérdezési nyelvét használják a telekommunikációban, az egészségügyben, a kiskereskedelemben, a banki és pénzügyi szolgáltatásokban, sőt a NASA Test Propulsion Laboratory klímabecslési rendszerében is. Az SQL-lekérdezések és -parancsok egyszerű írása megkönnyíti a szélesebb körű elfogadást. Az ezen a területen növekvő munkalehetőség frissebbé teszi a különféle ágazatok szakembereit, és gyakorlati tapasztalatokat és ismereteket szerezhetnek a területen.
Ajánlott cikkek
Ez egy útmutató a HiveQL-hez. Itt tárgyaljuk a HiveQL bevezetését, a lekérdezések optimalizálását, annak korlátozásait és szolgáltatásait. Megnézheti a kapcsolódó cikkeket is, ha többet szeretne megtudni -
- Mi a kaptár adattípusai?
- Kaptár alternatívái | Tudja meg a szolgáltatásokat
- A kaptárparancsok legfontosabb alkotóelemei
- A top 10 kaptárinterjúval kapcsolatos kérdés