Zijn twee superhelden niet beter dan één?
Sommige van de krachtigste resultaten komen voort uit het combineren van complementaire superkrachten, en het “dynamische duo” van Apache Hive LLAP en Apache Impala, beide opgenomen in Cloudera Data Warehouse, is daar een verder bewijs van. Zowel Impala als Hive kunnen werken op een ongekende en massieve schaal, met vele petabytes aan data. Beide zijn 100% Open Source, dus u kunt vendor lock-in vermijden terwijl u uw favoriete BI-tools gebruikt, en profiteren van community-gedreven innovatie.
Zowel Impala als Hive LLAP klinken alsof ze geweldig zullen werken voor mijn datawarehouse use cases, dus waarom moet ik echt een keuze maken tussen de twee? Het antwoord is simpel, elk heeft zijn eigen unieke specialiteiten, en afhankelijk van het type analyse dat je wilt doen, kan het zijn dat de een beter geschikt is dan de ander. Er is echter een geheim dat ik tot het einde van deze blog bewaar, en dat de beslissing voor de gebruiker nog gemakkelijker maakt: zo gemakkelijk zelfs, dat je niet eens zelf hoeft te beslissen.
Voordat ik inga op de verschillen tussen deze SQL engines, is het belangrijk om op te merken dat zowel Impala als Hive LLAP dezelfde data en metadata delen (via de Hive Metastore), dus niet alleen kun je van de een naar de ander overschakelen als je van gedachten verandert, je kunt zelfs verschillende workloads draaien met verschillende engine keuzes op dezelfde data, op hetzelfde moment. Een echte “best of both worlds”-situatie.
Dus, waarom kiezen? Nou, over het algemeen werkt Impala het beste wanneer u werkt met een data mart, wat meestal een grote dataset is met een schema dat beperkt is in reikwijdte. Ondertussen is Hive LLAP een betere keuze voor het omgaan met use cases over de bredere reikwijdte van een enterprise datawarehouse. Bij deze use cases zijn vaak meerdere afdelingen en een verscheidenheid aan downstreamtoepassingen betrokken, die beide resulteren in een breder scala aan querypatronen. We zien ook dat Impala een goede keuze is voor interactieve, ad-hoc query’s, vooral als je honderden of duizenden gebruikers hebt die op hun eigen manier werken.
U kunt ook mixen en matchen, waarbij u Impala gebruikt voor sommige query’s en sommige tabellen, en Hive LLAP voor andere query’s en andere tabellen.
Impala is ontworpen voor snelheid.
Geschreven in C++, dat zeer CPU-efficiënt is, met een zeer snelle queryplanner en metadata caching, is Impala geoptimaliseerd voor query’s met een lage latency. Hierdoor is Impala een ideale engine voor gebruik met een data mart, aangezien mensen die met data marts werken meestal alleen read-only queries uitvoeren en geen grootschalige writes.
Impala heeft ook een zeer efficiënt runtime execution framework, dat gebruik maakt van code generatie, proces-naar-proces communicatie, massaal parallellisme, en metadata caching. Hierdoor is Impala ook geweldig bij het werken met ad-hoc queries, zoals bij het verkennen door iteratief in gegevens te graven. Je zult je query steeds weer willen veranderen, op elk moment, en zeer snelle responstijden willen hebben, zodat je niet eeuwig hoeft te wachten op elke iteratie.
Hive LLAP is ontworpen voor geavanceerdheid.
Hive LLAP heeft veel geavanceerde mogelijkheden die het voor ontwikkelaars wellicht wat moeilijker maken om aan de slag te gaan en effectief te gebruiken. In Hive LLAP duurt het soms langer voordat een query door de planning en de ramp-up voor uitvoering gaat. Hive is echter ontworpen om zeer fouttolerant te zijn. Als een fragment van een langlopende query mislukt, zal Hive het opnieuw toewijzen en het opnieuw proberen. Hive cached zowel data bestanden als query resultaten, met geavanceerde algoritmes, wat betekent dat vaker opgevraagde data in de cache van LLAP blijft. Hive LLAP ondersteunt query federatie, door queries over meerdere componenten en databases te laten lopen. Daarom maakt Hive LLAP een “langzame start” in EDW use cases goed, omdat het veel robuuster is, en op de lange termijn betere prestaties levert.
Door deze verfijning en flexibiliteit is Hive LLAP beter geschikt voor enterprise data warehouse, of EDW use cases. Met een EDW ondersteunt u Business Intelligence-rapporten en -dashboards, afhankelijke data marts, andere bedrijfsapplicaties, externe systemen en meer. Deze workloads houden vaak rekening met meerdere dimensies, en als gevolg daarvan moeten EDW’s vaak complexere SQL-vereisten verwerken dan data marts, met een grotere behoefte aan complexe gegevenstypen, meer geplande query’s, en query orkestratie om data marts te vullen of regelmatige gegevensextracten te genereren.
Hive’s vermogen om robuuster om te gaan met langer lopende, complexere query’s, op massieve-schaal gegevenssets, maken het vaak de betere keuze voor dit soort toepassingen. Bij ad-hoc queries met snelle acties kunnen de opstarttijden van Hive LLAP het systeem vertragen ten opzichte van Impala, maar bij langer lopende queries vormen deze opstartkosten een relatief onbelangrijk deel van de totale doorlooptijd. Hive LLAP wordt ook een betere keuze voor EDW vanwege zijn fouttolerantie (wie wil dat een query mislukt als je lang op het resultaat moet wachten?) en betere prestaties bij complexere queries.
Het gebruik van Impala en Hive LLAP
Impala | Hive LLAP | |
Data mart | Enterprise data warehouse | |
|
|
|
|
|
|
|
|
|
Gecombineerd met enorme gegevenssets en een groeiend aantal gebruikssituaties, maakt de keuze van de juiste Data Warehouse SQL Engine om tijdig resultaten te verkrijgen, het verschil.
Ga met ons mee naar Racing for Results! Data Warehouse – Impala vs. Hive LLAP, een levendig debat tussen experts, op 20 oktober 2020, 10:00am US pacific time, 1:00pm US eastern time, compleet met klant use case voorbeelden, en gevolgd door een live q&a.
Directeur Product Marketing