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:

  1. 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.
  2. A fordító kérést küld a Metastore-nak, és válaszként megkapja a metaadatokat.
  3. A fordító visszaadja a végrehajtási tervet az illesztőprogramnak, amely továbbküldi azt a Végrehajtó motornak.
  4. 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.
  5. Ezzel párhuzamosan a végrehajtó motor végrehajtja a Metaadat műveletet is.
  6. A névcsomópont elvégzi a feladatot a Feladatkövető vagy az Adat-csomópontok által.
  7. 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

  1. 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.
  2. 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.
  3. A bitmap indexelést a lekérdezések felgyorsítása érdekében végezzük.
  4. Fokozza a teljesítményt az adatok particionálásának lehetővé tétele révén.
  5. A Hive különféle típusú tömörített fájlokat képes feldolgozni, ezzel megtakarítva a lemezterületet.
  6. 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.
  7. Számos további API-t kínál egy testreszabott lekérdező motor felépítéséhez.
  8. 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.
  9. 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

  1. A kaptárkérelmek hosszabb késleltetéssel bírnak, mivel a Hadoop kötegorientált rendszer.
  2. A beágyazott vagy az alkérdések nem támogatottak.
  3. A frissítés, törlés vagy beszúrás nem hajtható végre rekordszinten.
  4. 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 -

  1. Mi a kaptár adattípusai?
  2. Kaptár alternatívái | Tudja meg a szolgáltatásokat
  3. A kaptárparancsok legfontosabb alkotóelemei
  4. A top 10 kaptárinterjúval kapcsolatos kérdés

Kategória: