Er to superhelte ikke bedre end én?
Nogle af de mest kraftfulde resultater kommer fra kombinationen af komplementære superkræfter, og den “dynamiske duo” Apache Hive LLAP og Apache Impala, der begge er inkluderet i Cloudera Data Warehouse, er endnu et bevis på dette. Både Impala og Hive kan operere på en hidtil uset og massiv skala med mange petabyte data. Begge er 100 % open source, så du kan undgå leverandørbinding, mens du bruger dine foretrukne BI-værktøjer, og du kan drage fordel af fællesskabsdrevet innovation.
Både Impala og Hive LLAP lyder hver især som om, at de vil fungere godt til mine brugssituationer for datawarehouse, så hvorfor skal jeg egentlig vælge mellem de to? Svaret er enkelt, de har hver deres unikke specialiteter, og afhængigt af den type analyser, du ønsker at lave, kan du finde ud af, at den ene er bedre egnet end den anden. Der er dog en hemmelighed, som jeg gemmer til sidst i bloggen, og som gør beslutningen endnu nemmere for brugeren: så nemt faktisk, at du ikke engang selv behøver at beslutte dig.
Hvor jeg kommer ind på forskellene mellem disse SQL-motorer, er det vigtigt at bemærke, at både Impala og Hive LLAP deler de samme data og metadata (gennem Hive Metastore), så ikke alene kan du skifte fra den ene til den anden, hvis du skifter mening, du kan endda køre forskellige arbejdsbelastninger ved hjælp af forskellige motorvalg på de samme data, på samme tid. En ægte “det bedste fra begge verdener”-situation.
Så hvorfor vælge? Tja, generelt set fungerer Impala bedst, når du interagerer med et datamart, som typisk er et stort datasæt med et skema, der er begrænset i omfang. I mellemtiden er Hive LLAP et bedre valg til at håndtere use cases på tværs af det bredere omfang af et virksomhedsdatawarehouse. Disse brugssager involverer ofte flere afdelinger og en række downstream-applikationer, hvilket begge resulterer i et bredere udvalg af forespørgselsmønstre. Vi kan også se, at Impala er et godt valg til interaktive ad hoc-forespørgsler, især hvis du har hundredvis eller tusindvis af brugere, der arbejder på egen hånd.
Du kan også blande og matche og bruge Impala til nogle forespørgsler og nogle tabeller og Hive LLAP til andre forespørgsler og andre tabeller.
Impala blev designet til hastighed.
Skrevet i C++, som er meget CPU-effektivt, med en meget hurtig forespørgselsplanlægger og metadata-caching, er Impala optimeret til forespørgsler med lav latenstid. På grund af dette er Impala en ideel motor til brug med et datamart, da folk, der arbejder med datamarts, for det meste kører skriveforespørgsler, der kun er læseforespørgsler, og ikke skriver i stor skala.
Impala har også en meget effektiv ramme for kørselstidsudførelse, der anvender kodegenerering, proces-til-proces-kommunikation, massiv parallelitet og metadata-caching. På grund af dette er Impala også fantastisk, når man arbejder med ad hoc-forespørgsler, f.eks. når man udforsker ved iterativt at grave sig ned i data. Du vil gerne ændre din forespørgsel igen og igen, med et øjebliks varsel, og have meget hurtige svartider, så du ikke skal vente evigt på hver iteration.
Hive LLAP er designet til at være sofistikeret.
Hive LLAP har mange sofistikerede funktioner, som kan gøre det lidt sværere for udviklere at komme i gang og bruge effektivt. I Hive LLAP tager det nogle gange længere tid for en forespørgsel at gennemløbe planlægningen og opstarten til udførelse. Hive er imidlertid designet til at være meget fejltolerant. Hvis et fragment af en forespørgsel, der kører længe, fejler, vil Hive omfordele det og prøve igen. Hive cacher datafiler såvel som forespørgselsresultater med sofistikerede algoritmer, hvilket betyder, at hyppigere forespurgte data forbliver cachelagret med LLAP. Hive LLAP understøtter forespørgselsføderation ved at tillade, at forespørgsler kan køre på tværs af flere komponenter og databaser. Derfor kompenserer Hive LLAP for en eventuel “langsom start” i EDW-brugstilfælde, da den er meget mere robust og har større ydeevne i det lange løb.
På grund af denne sofistikering og fleksibilitet er Hive LLAP bedre egnet til EDW-brugstilfælde (enterprise data warehouse, eller EDW). Med et EDW understøtter du Business Intelligence-rapporter og dashboards, afhængige datamarts, andre virksomhedsapplikationer, eksterne systemer og meget mere. Disse arbejdsbelastninger tager ofte flere dimensioner i betragtning, og som følge heraf skal EDW’er ofte behandle mere komplekse SQL-krav end datamarts, med et større behov for komplekse datatyper, flere planlagte forespørgsler og forespørgselsorkestrering for at fylde datamarts eller generere regelmæssige dataudtræk.
Hives evne til mere robust at håndtere længerevarende, mere komplekse forespørgsler, på datasæt i massiv skala, gør det ofte til det bedre valg til disse typer af applikationer. Ved ad hoc-forespørgsler med hurtig handling kan Hive LLAP’s opstartstider gøre den langsommere sammenlignet med Impala, men ved længerevarende forespørgsler er denne opstartsomkostning en relativt ubetydelig del af den samlede køretid. Hive LLAP bliver et bedre valg til EDW også på grund af dens fejltolerance (hvem ønsker, at en forespørgsel fejler, hvis man venter længe på resultatet?) og bedre ydeevne ved mere komplekse forespørgsler.
Anvendelse af Impala og Hive LLAP
Impala | Hive LLAP |
Data mart | Enterprise data warehouse |
|
|
|
|
|
|
I takt med at massive datasæt kombineres med vækst i anvendelsestilfælde, gør det hele forskellen at vælge den rigtige Data Warehouse SQL Engine for at få rettidige resultater.
Samarbejd med os til Racing for Results! Data Warehouse – Impala vs. Hive LLAP, en livlig debat blandt eksperter, den 20. oktober 2020 kl. 10:00 US pacific time, 13:00 US eastern time, komplet med eksempler på kundebrugstilfælde, og efterfulgt af en live q&a.
Director Product Marketing