Uvod v HiveQL

HiveQL, splošno znan kot HQL, je poizvedovalni jezik, podoben SQL-u, za obdelavo velikih kosov podatkov iz okolja Hadoop. Hive, ki ga je prvotno razvil Facebook okoli leta 2007, je kasneje Hive postal odprti projekt Apache. Poizvedbe o panju s sintakso, podobno SQL, so danes postale priljubljene med analitiki podatkov. HiveQL, ki uporablja HDFS za shranjevanje in MapReduce za obdelavo, pomaga pri pridobivanju vpogleda za uporabnike velikih podatkov z minimalno izkušnjo s kodiranjem. Za Hitro obdelavo obsežne analitike podatkov se lahko s HiveQLom uporabljajo različni drugi računalniški motorji, kot sta Apache Tez in Apache Spark. Različni načini uporabe HiveQL so - CLI (Command Line Interface), komercialni izdelki, kot so Karmasphere, odprtokodni Clouera Hue in Qubole.

Delo HiveQL-a

Hive ponuja narečje, podobno SQL, za obdelavo podatkov, s čimer odpravlja potrebo po pisanju opravil MapReduce na nizki ravni za pridobivanje podatkov (prek Mapperja) in združevanje končnih rezultatov (prek reduktorskih modulov).

  • Izvajanje poizvedbe o panju

Koraki, ki sodelujejo pri izvajanju poizvedbe o Hive, so:

  1. Hive vmesnik (prek CLI ali Web UI) pošlje poizvedbo gonilniku (ki je JDBC, ODBC ali Thrift Server), da sestavi, optimizira in izvede. Poizvedbo preveri prek prevajalnika glede skladnosti in načrta izvedbe.
  2. Prevajalnik pošlje zahtevo Metastore in kot odgovor prejme Metapodatke.
  3. Prevajalnik sporoči načrt izvajanja gonilniku, ki ga nato pošlje v Izvršilni mehanizem.
  4. Izvajalni mehanizem sodeluje s sledilcem opravil, ki je ime vozlišče, da opravi delo.
  5. Vzporedno, izvršilni motor izvaja tudi operacijo metapodatkov.
  6. Imensko vozlišče opravilo opravi sledilnik opravil ali vozlišča Data.
  7. Rezultati, ki so v skupni rabi z izvajalnikom, ki se nato preko gonilnika prikažejo vmesniku.
  • Optimizacija poizvedb

Uglaševanje HiveQL-a za boljšo optimizacijo poizvedb. Z uporabo spodaj nastavljenih ukazov lahko razveljavimo privzete konfiguracije in omogočimo hitrejše izvajanje poizvedb.

1 . SET hive.execution.engine = tez

Izvršilni motor je privzeto nastavljen kot Mapreduce, vendar ga lahko izrecno nastavimo na tez (samo za Hadoop 2) ali Spark (za panj 1.1. 0 naprej).

2 SET hive.mapred.mode = omeji

To je za dinamično particijo, ki je koristna za nalaganje velikih nizov podatkov. Vendar je statična particija nastavljena kot privzeta, kar se zgodi v "strogem" načinu.

3 . SET hive.vectorized.execution = res

set hive.vectorized.execution.enabled = res

Vektorizirano izvajanje poizvedb omogoča, da se operacije, kot so - agregati, filtri ali združevanja, zgodijo v serijah 1024 vrstic namesto v eni vrstici hkrati.

4 . SET hive.auto.convert.join = res

Medtem ko združujete velik nabor podatkov z zelo majhnim naborom podatkov, so povezave zemljevidov bolj učinkovite in jih je mogoče nastaviti z zgornjim ukazom.

5 . SET hive.exec.parallel = res

V Hadoopu se vzporedno izvajajo opravila MapReduce. Včasih, če poizvedbe niso odvisne druga od druge, se lahko daje prednost vzporedni izvedbi, kar vodi k boljšemu upravljanju pomnilnika.

6 . SET hive.exec.compress.output = res

To omogoča, da se končni izhod shrani v HDFS v stisnjeni obliki.

7 . SET hive.exec.compress.output = res

To omogoča, da se končni izhod shrani v HDFS v stisnjeni obliki.

Značilnosti HiveQL-a

  1. Poizvedbe Hive, ki so jezik visokega nivoja, implicitno pretvorijo v opravila, zmanjšana za preslikavo ali zapletene DAG-ove (usmerjeni aciklični grafi). S ključno besedo 'Pojasni' pred poizvedbo lahko dobimo načrt poizvedb.
  2. Hitrejše izvajanje poizvedb s shranjevanjem metapodatkov v formatu RDMS in kopiranje podatkov, kar olajša iskanje v primeru izgube.
  3. Indeks Bitmap se izvaja za pospešitev poizvedb.
  4. Povečuje zmogljivost z omogočanjem delitve podatkov.
  5. Hive lahko obdela različne vrste stisnjenih datotek in tako prihrani prostor na disku.
  6. Za upravljanje nizov, celih števil ali datumov HiveQL podpira razširitev uporabniško določenih funkcij (UDF) za reševanje težav, ki jih ne podpirajo vgrajeni UDF-ji.
  7. Ponuja vrsto dodatnih API-jev za izdelavo prilagojenega poizvedbe.
  8. Podprti so različni formati datotek, kot so Textfile, Sequencefile, ORC (Optimizirani stolpec vrstice), RCFile, Avro in Parquet. Format datotek ORC je najbolj primeren za izboljšanje uspešnosti poizvedb, saj shranjuje podatke na najbolj optimiziran način, kar vodi do hitrejšega izvajanja poizvedb.
  9. Je učinkovito orodje za analitično obdelavo podatkov in orodje ETL za velike nabore podatkov 10. Preprosto za pisanje poizvedb, saj je podobno kot SQL. Ukazi DDL (jezik definiranja podatkov) v panju se uporabljajo za določanje in spreminjanje strukture baze podatkov ali tabel v panju. Ti ukazi spuščajo, ustvarjajo, krajšajo, spreminjajo, prikažejo ali opisujejo.

Omejitve

  1. Poizvedbe o panju imajo večjo zamudo, saj je Hadoop sistemsko usmerjen sistem.
  2. Gnezdene ali pod poizvedbe niso podprte.
  3. Operacije posodabljanja, brisanja ali vstavljanja ni mogoče izvesti na rekordni ravni.
  4. Obdelava ali poizvedovanje podatkov v realnem času ni na voljo prek Hive Scope of HQL.

S petabajti podatkov, ki segajo od milijard do trilijonov zapisov, ima HiveQL veliko področje za velike strokovnjake s podatki.

Področje uporabe HiveQL-a

V nadaljevanju so predstavljeni načini, kako se obseg HiveQL-a širi in bolje služi analizi analnih podatkov, ki jih uporabniki ustvarijo vsak dan.

Varnost: Hive ob obdelavi velikih podatkov zagotavlja varnost podatkov. Ta naloga je za porazdeljeni sistem zapletena, saj je za komunikacijo med seboj potrebnih več komponent. Podpora za avtorizacijo Kerberos omogoča avtentikacijo med odjemalcem in strežnikom.

Zaklepanje: Panj tradicionalno nima zaklepanja v vrsticah, stolpcih ali poizvedbah. Panj lahko uporabi Apache Zookeeper za zaklepanje opore.

Upravljanje delovnega toka : Apache Oozie je razporejevalnik delovnih tokov za avtomatizacijo različnih poizvedb HiveQL za zaporedno ali vzporedno izvajanje.

Vizualizacija: Zeppelin notebook je spletni prenosnik, ki omogoča interaktivno analizo podatkov. Podpira Hive in Spark za vizualizacijo podatkov in sodelovanje.

Zaključek

HiveQL se pogosto uporablja v vseh organizacijah za reševanje zapletenih primerov uporabe. Upoštevajoč značilnosti in omejitve, ki jih ponuja jezik, se jezik poizvedbe uporablja za telekomunikacije, zdravstvo, trgovino na drobno, bančništvo in finančne storitve ter celo za NASA-in sistem ocenjevanja podnebja NASA-jevega pogonskega laboratorija. Enostavnost pisanja SQL, kot so poizvedbe in ukazi, omogoča širše sprejemanje. Naraščajoča zaposlitvena priložnost na tem področju vabi sveže in strokovnjake iz različnih sektorjev, da pridobijo praktične izkušnje in znanje o tem področju.

Priporočeni članki

To je vodnik za HiveQL. Tukaj razpravljamo o uvodu v HiveQL, optimizaciji poizvedb ter njegovih omejitvah in lastnostih. Obiščite lahko tudi naše povezane članke, če želite izvedeti več -

  1. Kaj so tipi podatkov v panju?
  2. Nadomestni panj | Poiščite funkcije
  3. Zgornje komponente ukazov panja
  4. Top 10 vprašanj o intervjuju s panjem

Kategorija: