Introducere în HiveQL

HiveQL, cunoscut de obicei sub denumirea de HQL, este un limbaj de interogare asemănător SQL pentru procesarea unor bucăți mari de date din mediul Hadoop. Dezvoltat inițial de Facebook în jurul anului 2007, Hive a devenit ulterior un proiect Apache open-source. Interogările din stup cu sintaxa similară cu SQL au devenit populare în rândul analiștilor de date din zilele noastre. HiveQL folosind HDFS pentru stocare și MapReduce pentru procesare ajută la obținerea unor informații pentru utilizatorii de date mari cu experiență minimă de codare. Diferite alte motoare de calcul distribuite, cum ar fi Apache Tez și Apache Spark, pot fi utilizate cu HiveQL pentru procesarea mai rapidă a analizelor de date la scară largă. Diferitele modalități de a utiliza HiveQL sunt - CLI (Command Line Interface), produse comerciale precum Karmasphere, Cloudera Hue open source și Qubole.

Funcționarea HiveQL

Hive oferă un dialect ca SQL pentru manipularea datelor, eliminând nevoia ca noi să scriem joburi MapReduce la nivel scăzut pentru a prelua date (prin Mapper) și să agregăm rezultatele finale (prin modulele Reducer).

  • Executarea interogării stupului

Pașii implicați în executarea unei interogări Hive sunt:

  1. Interfața stup (prin CLI sau Web UI) trimite interogarea către Driver (care este JDBC, ODBC sau Thrift Server) pentru a compila, optimiza și executa. Verifică interogarea printr-un compilator pentru planul de sintaxă și execuție.
  2. Compilerul trimite o solicitare către Metastore și primește Metadata ca răspuns.
  3. Compilatorul comunică înapoi șoferului planul de execuție, care îl trimite mai departe motorului de execuție.
  4. Motorul de execuție interacționează cu Job Tracker, care este Nodul Nume pentru a finaliza lucrarea.
  5. În paralel, motorul de execuție execută, de asemenea, funcționarea Metadata.
  6. Nodul nume primește treaba făcută de Task tracker sau Noduri de date.
  7. Rezultate care sunt partajate cu motorul de execuție, care apoi sunt afișate pe interfață prin intermediul driverului.
  • Optimizarea interogărilor

Tuning HiveQL pentru o mai bună optimizare a întrebărilor. Folosind comenzile setate mai jos, putem să înlocuim configurațiile implicite și să permitem executarea rapidă a interogării.

1 . SET hive.execution.engine = tez

În mod implicit, motorul de execuție este setat ca Mapreduce, dar îl putem seta în mod explicit pe tez (doar pentru Hadoop 2) sau Spark (pentru Hive 1.1. 0 înainte).

2 . SET hive.mapred.mode = nelimitat

Aceasta este pentru compartimentarea dinamică, care este utilă pentru încărcarea seturilor de date mari. Cu toate acestea, partiționarea statică este setată ca implicită, ceea ce se întâmplă în modul „strict”.

3 . SET hive.vectorized.execution = true

set hive.vectorized.execution.enabled = true

Execuția de interogare vectorizată permite ca operațiunile -gregate, filtre sau uniri să se întâmple în loturi de 1024 de rânduri în loc de un singur rând la rând.

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

În timp ce se alătură unui set de date mare cu un set de date foarte mic, îmbinările de hartă sunt mai eficiente și pot fi setate folosind comanda de mai sus.

5 . SET hive.exec.parallel = true

Joburile MapReduce sunt executate în paralel în Hadoop. Uneori, dacă interogările nu depind unele de altele, executarea paralelă poate fi favorizată, conducând la o mai bună gestionare a memoriei.

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

Aceasta permite ieșirea finală a fi stocată în HDFS într-un format comprimat.

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

Aceasta permite ieșirea finală a fi stocată în HDFS într-un format comprimat.

Caracteristici ale HiveQL

  1. Fiind un limbaj la nivel înalt, interogările Hive sunt implicit convertite în locuri de muncă pentru reducerea hărții sau DAG complexe (grafice aciclice direcționate). Folosind cuvântul cheie „Explicați” înainte de interogare, putem obține planul de interogare.
  2. Execuția de interogare mai rapidă folosind stocarea de metadate într-un format RDMS și replică datele, ceea ce face ușor recuperarea în caz de pierdere.
  3. Indexarea Bitmap se face pentru a accelera interogările.
  4. Îmbunătățește performanța permițând partiționarea datelor.
  5. Stupul poate procesa diferite tipuri de fișiere comprimate, economisind astfel spațiu pe disc.
  6. Pentru a manipula șiruri, întregi sau date, HiveQL acceptă extinderea funcțiilor definite de utilizator (UDF), pentru a rezolva problemele care nu sunt acceptate de UDF-urile încorporate.
  7. Oferă o serie de API-uri suplimentare, pentru a construi un motor de interogare personalizat.
  8. Diferite formate de fișiere sunt acceptate precum Textfile, Sequencefile, ORC (Row Columnar Optimized), RCFile, Avro și Parquet. Formatul de fișier ORC este cel mai potrivit pentru îmbunătățirea performanței interogării, deoarece stochează datele în cel mai optim mod, ceea ce duce la executarea rapidă a interogării.
  9. Este un instrument eficient de analiză a datelor și ETL pentru seturi de date mari 10. Interogări ușor de scris, deoarece este similar cu SQL. Comenzile DDL (limbajul de definire a datelor) din stup sunt utilizate pentru a specifica și modifica structura bazei de date sau a tabelelor din stup. Aceste comenzi sunt menajate, create, trunchiate, modificate, afișate sau descrise.

limitări

  1. Interogările stupului au o latență mai mare, deoarece Hadoop este un sistem orientat pe lot.
  2. Subcomandările nu sunt acceptate.
  3. Operația de actualizare, ștergere sau inserare nu poate fi efectuată la un nivel de înregistrare.
  4. Prelucrarea sau interogarea datelor în timp real nu este oferită prin intermediul Scope Hive din HQL.

Cu petabytes de date, variind de la miliarde la miliarde de înregistrări, HiveQL are o gamă largă pentru profesioniști mari.

Domeniul de aplicare al HiveQL

Mai jos sunt modalitățile prin care domeniul de aplicare al HiveQL se lărgește și servește mai bine scopului de a analiza datele umane generate de utilizatori în fiecare zi.

Securitate: Împreună cu procesarea datelor mari, Hive asigură securitatea datelor. Această sarcină este complexă pentru sistemul distribuit, deoarece mai multe componente sunt necesare pentru a comunica între ele. Asistența de autorizare Kerberos permite autentificarea între client și server.

Blocare: în mod tradițional, stupului nu are loc blocarea pe rânduri, coloane sau interogări. Stupul poate folosi Apache Zookeeper pentru blocarea suportului.

Managementul fluxului de lucru : Apache Oozie este un programator de fluxuri de lucru care automatizează diverse interogări HiveQL pentru a executa secvențial sau în paralel.

Vizualizare: notebook Zeppelin este un notebook bazat pe web, care permite analiza interactivă a datelor. Suporta Hive și Spark pentru vizualizarea și colaborarea datelor.

Concluzie

HiveQL este utilizat pe scară largă între organizații pentru a rezolva cazuri de utilizare complexă. Ținând cont de caracteristicile și limitările oferite de limbă, limbajul de interogare Hive este utilizat în telecomunicații, asistență medicală, comerț cu amănuntul, servicii bancare și financiare și chiar în sistemul de evaluare climatică al Laboratorului de testare a propulsiei NASA. Ușurința de a scrie conturi SQL precum interogări și comenzi pentru o acceptare mai largă. Oportunitatea din ce în ce mai mare de locuri de muncă în acest domeniu atrage mai mulți profesioniști din diferite sectoare pentru a câștiga experiență practică și cunoștințe despre domeniu.

Articole recomandate

Acesta este un ghid pentru HiveQL. Aici discutăm Introducerea în HiveQL, Optimizarea interogărilor și limitările și caracteristicile sale. De asemenea, puteți parcurge articolele noastre conexe pentru a afla mai multe -

  1. Ce este tipul de date stup?
  2. Alternativele stupului | Aflați funcțiile
  3. Componenți de top ai comenzilor stupului
  4. Top 10 întrebări pentru interviu stup

Categorie: