Är inte två superhjältar bättre än en?
Vissa av de mest kraftfulla resultaten kommer från att kombinera kompletterande superkrafter, och den ”dynamiska duon” Apache Hive LLAP och Apache Impala, som båda ingår i Cloudera Data Warehouse, är ytterligare ett bevis på detta. Både Impala och Hive kan arbeta i en oöverträffad och massiv skala, med många petabyte data. Båda är 100 % öppen källkod, så du kan undvika leverantörslåsning medan du använder dina favorit BI-verktyg och dra nytta av gemenskapsdriven innovation.
Både Impala och Hive LLAP låter som om de kommer att fungera utmärkt för mina användningsområden för datalager, så varför behöver jag verkligen välja mellan de två? Svaret är enkelt, båda har sina egna unika specialiteter, och beroende på vilken typ av analys du vill göra kan det hända att den ena är bättre lämpad än den andra. Det finns dock en hemlighet som jag behåller till slutet av bloggen och som gör beslutet ännu enklare för användaren: så enkelt faktiskt att du inte ens behöver bestämma dig själv.
Innan jag går in på skillnaderna mellan dessa SQL-motorer är det viktigt att notera att både Impala och Hive LLAP delar samma data och metadata (genom Hive Metastore) så att du inte bara kan byta från den ena till den andra om du ändrar dig, utan du kan även köra olika arbetsbelastningar med hjälp av olika motorval på samma data, vid samma tidpunkt. En sann ”bästa av två världar”-situation.
Så, varför välja? Tja, generellt sett fungerar Impala bäst när du interagerar med en datamart, vilket vanligtvis är en stor datamängd med ett schema som är begränsat i omfattning. Samtidigt är Hive LLAP ett bättre val för att hantera användningsfall i det bredare tillämpningsområdet för ett datalager för företag. Dessa användningsfall involverar ofta flera avdelningar och en mängd olika nedströmstillämpningar, vilket båda resulterar i ett bredare utbud av frågemönster. Vi ser också att Impala är ett bra val för interaktiva, ad hoc-förfrågningar, särskilt om du har hundratals eller tusentals användare som arbetar på egen hand.
Du kan också blanda och matcha och använda Impala för vissa frågor och vissa tabeller och Hive LLAP för andra frågor och andra tabeller.
Impala har utformats för snabbhet.
Skriven i C++, som är mycket CPU-effektivt, med en mycket snabb frågeplanerare och metadatacachelagring, är Impala optimerad för frågor med låg latenstid. På grund av detta är Impala en idealisk motor för användning med en datamart, eftersom personer som arbetar med datamart oftast kör endast läsförfrågningar och inte skrivningar i stor skala.
Impala har också ett mycket effektivt ramverk för körtidsexekvering, med hjälp av kodgenerering, process-till-process-kommunikation, massiv parallellism och caching av metadata. På grund av detta är Impala också utmärkt när man arbetar med ad hoc-förfrågningar, till exempel när man utforskar genom att iterativt gräva i data. Du vill ändra din fråga om och om igen, på ett ögonblick, och ha mycket snabba svarstider så att du inte behöver vänta i evighet på varje iteration.
Hive LLAP har utformats för sofistikering.
Hive LLAP har många sofistikerade funktioner som kan göra det lite svårare för utvecklare att komma igång och använda effektivt. I Hive LLAP tar det ibland längre tid för en fråga att gå igenom planeringen och upptrappningen för exekvering. Hive är dock utformad för att vara mycket feltolerant. Om ett fragment av en långvarig fråga misslyckas kommer Hive att omfördela det och försöka igen. Hive cachelagrar datafiler och frågeresultat med hjälp av sofistikerade algoritmer, vilket innebär att mer frekvent efterfrågade data förblir cachelagrade med LLAP. Hive LLAP stöder frågefederation genom att tillåta att frågor körs över flera komponenter och databaser. Därför kompenserar Hive LLAP för en eventuell ”långsam start” i EDW-användningsfall eftersom den är mycket mer robust och har högre prestanda på lång sikt.
På grund av denna sofistikering och flexibilitet lämpar sig Hive LLAP bättre för EDW-användningsfall (enterprise data warehouse). Med ett EDW stöder du Business Intelligence-rapporter och instrumentpaneler, beroende datamarkörer, andra företagsapplikationer, externa system med mera. Dessa arbetsbelastningar tar ofta hänsyn till flera dimensioner, och som ett resultat av detta måste EDW:s ofta bearbeta mer komplexa SQL-krav än datamarkörer, med ett större behov av komplexa datatyper, fler schemalagda förfrågningar och förfrågningsorkestrering för att fylla datamarkörer eller generera regelbundna datautdrag.
Hives förmåga att på ett robustare sätt hantera mer långvariga och komplexa förfrågningar på massiva datamängder gör att den ofta är det bättre valet för dessa typer av tillämpningar. Vid snabba ad hoc-förfrågningar kan Hive LLAP:s uppstartstider sänka hastigheten jämfört med Impala, men vid längre pågående förfrågningar är denna uppstartskostnad en relativt obetydlig del av den totala körtiden. Hive LLAP blir ett bättre val för EDW även på grund av dess feltolerans (vem vill att en fråga ska misslyckas om man väntar länge på resultatet?) och bättre prestanda för mer komplexa frågor.
Användning av Impala och Hive LLAP
Impala | Hive LLAP |
Data mart | Enterprise data warehouse |
|
|
|
|
|
|
I takt med att massiva datamängder kombineras med en ökning av användningsområden, är det viktigt att välja rätt SQL-motor för datalager för att få resultat i rätt tid.
Slut dig till oss för Racing for Results! Data Warehouse – Impala vs. Hive LLAP, en livlig debatt bland experter, den 20 oktober 2020 kl. 10.00 amerikansk tid, 13.00 amerikansk tid, komplett med exempel på användningsfall från kunder och följt av en live q&a.
Direktör produktmarknadsföring