Choosing the right Data Warehouse SQL Engine: Apache Hive LLAP vs Apache Impala

Nu sunt doi supereroi mai buni decât unul?

Câteva dintre cele mai puternice rezultate vin din combinarea unor superputeri complementare, iar „duo-ul dinamic” format din Apache Hive LLAP și Apache Impala, ambele incluse în Cloudera Data Warehouse, este o dovadă în plus a acestui lucru. Atât Impala, cât și Hive pot funcționa la o scară masivă și fără precedent, cu mulți petabytes de date. Ambele sunt 100% Open source, astfel încât puteți evita blocajul furnizorului în timp ce folosiți instrumentele BI preferate și beneficiați de inovația determinată de comunitate.

Atât Impala, cât și Hive LLAP sună fiecare ca și cum ar funcționa foarte bine pentru cazurile de utilizare a depozitului meu de date, deci de ce trebuie să mă decid între cele două? Răspunsul este simplu, fiecare are propriile sale specialități unice și, în funcție de tipul de analiză pe care doriți să o faceți, s-ar putea să găsiți că unul este mai potrivit decât celălalt. Cu toate acestea, există un secret pe care îl păstrez până la sfârșitul blogului, care face ca decizia să fie și mai ușoară pentru utilizator: atât de ușoară de fapt, încât nici măcar nu trebuie să vă decideți singur.

Înainte de a intra în diferențele dintre aceste motoare SQL, este important să rețineți că atât Impala, cât și Hive LLAP împărtășesc aceleași date și metadate (prin intermediul Hive Metastore), astfel încât nu numai că puteți trece de la unul la altul dacă vă răzgândiți, dar puteți chiar să rulați sarcini de lucru diferite folosind alegeri de motoare diferite pe aceleași date, în același timp. O adevărată situație de tip „best of both worlds”.

Atunci, de ce să alegeți? Ei bine, în general, Impala funcționează cel mai bine atunci când interacționați cu un mart de date, care este, de obicei, un set de date de mari dimensiuni cu o schemă care are un domeniu de aplicare limitat. Între timp, Hive LLAP este o alegere mai bună pentru a face față cazurilor de utilizare în domeniul de aplicare mai larg al unui depozit de date de întreprindere. Aceste cazuri de utilizare implică adesea mai multe departamente și o varietate de aplicații în aval, ambele având ca rezultat o gamă mai largă de modele de interogare. Vedem, de asemenea, că Impala este o alegere bună pentru interogări interactive, ad-hoc, în special dacă aveți sute sau mii de utilizatori care lucrează pe cont propriu.

De asemenea, puteți amesteca și combina, folosind Impala pentru anumite interogări și anumite tabele, iar Hive LLAP pentru alte interogări și alte tabele.

Impala a fost proiectat pentru viteză.

Scris în C++, care este foarte eficient din punct de vedere al procesorului, cu un planificator de interogări foarte rapid și caching de metadate, Impala este optimizat pentru interogări cu latență redusă. Din acest motiv, Impala este un motor ideal pentru utilizarea cu un martor de date, deoarece persoanele care lucrează cu martori de date execută în principal interogări doar de citire și nu scrieri la scară mare.

Impala are, de asemenea, un cadru de execuție în timp de execuție foarte eficient, folosind generarea de cod, comunicarea între procese, paralelismul masiv și memorarea în cache a metadatelor. Din acest motiv, Impala este, de asemenea, excelent atunci când se lucrează cu interogări ad-hoc, cum ar fi atunci când se explorează prin săparea iterativă a datelor. Veți dori să vă schimbați interogarea de nenumărate ori, la un moment dat, și să aveți timpi de răspuns foarte rapizi, astfel încât să nu așteptați o veșnicie pentru fiecare iterație.

Hive LLAP a fost proiectat pentru sofisticare.

Hive LLAP are multe capacități sofisticate care pot face ca dezvoltatorii să aibă puțin mai greu de început și să le folosească eficient. În Hive LLAP, uneori o interogare are nevoie de mai mult timp pentru a trece prin planificarea și accelerarea pentru execuție. Cu toate acestea, Hive este conceput pentru a fi foarte tolerant la erori. Dacă un fragment al unei interogări de lungă durată eșuează, Hive îl va realoca și va încerca din nou. Hive pune în cache fișierele de date, precum și rezultatele interogărilor, cu ajutorul unor algoritmi sofisticați, ceea ce înseamnă că datele solicitate mai frecvent rămân în cache cu LLAP. Hive LLAP suportă federația de interogări, permițând ca interogările să ruleze pe mai multe componente și baze de date. Prin urmare, Hive LLAP compensează orice „început lent” în cazurile de utilizare EDW, deoarece este mult mai robust și are o performanță mai mare pe termen lung.

Din cauza acestei sofisticări și flexibilități, Hive LLAP este mai potrivit pentru cazurile de utilizare a depozitelor de date de întreprindere, sau EDW. Cu un EDW, sprijiniți rapoartele și tablourile de bord Business Intelligence, marți de date dependente, alte aplicații de întreprindere, sisteme externe și multe altele. Aceste sarcini de lucru iau adesea în considerare mai multe dimensiuni și, ca urmare, EDW-urile trebuie adesea să proceseze cerințe SQL mai complexe decât marketele de date, cu o nevoie mai mare de tipuri de date complexe, mai multe interogări programate și orchestrarea interogărilor pentru a popula marketele de date sau pentru a genera extrageri regulate de date.

Capacitatea lui Hive de a gestiona în mod mai robust interogări mai complexe, cu o durată de execuție mai lungă, pe seturi de date la scară masivă, face ca acesta să fie adesea cea mai bună alegere pentru aceste tipuri de aplicații. În cazul interogărilor ad-hoc cu acțiune rapidă, timpii de pornire ai Hive LLAP îl pot încetini în comparație cu Impala, însă, în cazul interogărilor care rulează mai mult timp, acest cost de pornire este o parte relativ inconsecventă din timpul total de execuție. Hive LLAP devine o alegere mai bună pentru EDW, de asemenea, datorită toleranței sale la erori (cine dorește ca o interogare să eșueze dacă așteaptă mult timp rezultatul?) și unei performanțe mai bune în cazul interogărilor mai complexe.

Utilizarea Impala și Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • O alegere bună pentru interogări interactive și ad-analiză hoc, în special cu autoservire cu concurență ridicată
  • O alegere bună pentru interogări de lungă durată care necesită transformări grele sau îmbinări multiple
  • O alegere bună pentru interogări interactive și ad-hoc care utilizează caracteristici care nu sunt disponibile în Impala
  • O alegere bună pentru instrumentele de Business Intelligence care permit utilizatorilor să modifice rapid interogările
  • O alegere bună pentru tablouri de bord care sunt pre-definite și care nu pot fi personalizate de către vizualizator
  • Utilizează Parquet ca format de fișier preferat
  • Utilizează ORC ca format de fișier preferat
  • Se descurcă mai bine cu JSON decât o face Impala

Pe măsură ce seturile masive de date se combină cu creșterea numărului de cazuri de utilizare, alegerea motorului SQL Data Warehouse SQL Engine potrivit pentru a obține rezultate în timp util face toată diferența.

Alăturați-vă nouă pentru Cursa pentru rezultate! Data Warehouse – Impala vs. Hive LLAP, o dezbatere animată între experți, pe 20 octombrie 2020, la ora 10:00, ora Pacificului SUA, ora 13:00, ora Estului SUA, completată cu exemple de cazuri de utilizare ale clienților și urmată de o q&a live.

David Dichmann
David Dichmann

Director Product Marketing

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.