Výběr správného SQL enginu datového skladu:

Nejsou dva superhrdinové lepší než jeden?

Některé z nejsilnějších výsledků vznikají kombinací vzájemně se doplňujících superschopností a „dynamické duo“ Apache Hive LLAP a Apache Impala, které jsou součástí Cloudera Data Warehouse, je toho dalším důkazem. Impala i Hive mohou pracovat v bezprecedentním a obrovském měřítku, s mnoha petabajty dat. Oba jsou 100% open source, takže se můžete vyhnout vendor lock-in a zároveň používat své oblíbené nástroje BI a těžit z inovací řízených komunitou.

Oba nástroje Impala a Hive LLAP znějí, že budou skvěle fungovat pro mé případy použití datového skladu, tak proč se vlastně musím rozhodovat mezi nimi? Odpověď je jednoduchá, každý z nich má své jedinečné speciality a v závislosti na typu analýzy, kterou chcete provádět, můžete zjistit, že jeden je vhodnější než druhý. Existuje však tajemství, které si nechávám na konec blogu a které uživateli rozhodování ještě více usnadní: tak snadno, že se vlastně ani nemusíte rozhodovat sami.

Než se dostanu k rozdílům mezi těmito motory SQL, je důležité poznamenat, že jak Impala, tak Hive LLAP sdílejí stejná data a metadata (prostřednictvím Hive Metastore), takže nejenže můžete přejít z jednoho na druhý, pokud změníte názor, ale dokonce můžete na stejných datech současně spouštět různé pracovní zátěže s použitím různých možností motorů. Skutečně nejlepší situace z obou světů.

Takže, proč si vybírat? No, obecně řečeno, Impala funguje nejlépe, když pracujete s data martem, což je typicky velká datová sada se schématem, které má omezený rozsah. Zatímco Hive LLAP je lepší volbou pro práci s případy použití v širším rozsahu podnikového datového skladu. Tyto případy použití často zahrnují více oddělení a různé navazující aplikace, což obojí vede k širší škále vzorů dotazů. Vidíme také, že Impala je dobrou volbou pro interaktivní, ad-hoc dotazy, zejména pokud s nimi pracují stovky nebo tisíce uživatelů.

Můžete také kombinovat a používat Impalu pro některé dotazy a některé tabulky a Hive LLAP pro jiné dotazy a jiné tabulky.

Impala byla navržena pro rychlost.

Je napsána v jazyce C++, který je velmi úsporný na procesor, s velmi rychlým plánovačem dotazů a ukládáním metadat do mezipaměti, Impala je optimalizována pro dotazy s nízkou latencí. Z tohoto důvodu je Impala ideálním enginem pro použití s datovým martem, protože lidé pracující s datovými marty většinou provádějí dotazy pouze pro čtení, a nikoli rozsáhlé zápisy.

Impala má také velmi efektivní rámec pro provádění za běhu, který využívá generování kódu, komunikaci mezi procesy, masivní paralelismus a ukládání metadat do mezipaměti. Díky tomu je Impala skvělá i při práci s ad-hoc dotazy, například při průzkumu iterativním prohrabáváním dat. Svůj dotaz budete chtít měnit znovu a znovu, v jeden okamžik, a mít velmi rychlou odezvu, abyste na každou iteraci nečekali věčnost.

Hive LLAP byl navržen pro sofistikovanost.

Hive LLAP má mnoho sofistikovaných možností, které mohou vývojářům trochu ztížit začátky a efektivní používání. V Hive LLAP někdy trvá déle, než dotaz projde plánováním a náběhem k provedení. Hive je však navržen tak, aby byl velmi odolný vůči chybám. Pokud fragment dlouho prováděného dotazu selže, Hive jej znovu přiřadí a zkusí to znovu. Hive ukládá do mezipaměti datové soubory i výsledky dotazů pomocí sofistikovaných algoritmů, což znamená, že častěji požadovaná data zůstávají uložena v mezipaměti LLAP. Hive LLAP podporuje federaci dotazů tím, že umožňuje spouštění dotazů ve více komponentách a databázích. Proto Hive LLAP vynahrazuje případný „pomalý start“ v případech použití EDW, protože je mnohem robustnější a z dlouhodobého hlediska má vyšší výkon.

Vzhledem k této propracovanosti a flexibilitě je Hive LLAP vhodnější pro případy použití podnikových datových skladů neboli EDW. V případě EDW podporujete sestavy a panely Business Intelligence, závislé datové marty, další podnikové aplikace, externí systémy a další. Tyto pracovní zátěže často zohledňují více dimenzí a v důsledku toho musí EDW často zpracovávat složitější požadavky SQL než datové marty, s větší potřebou složitých datových typů, více plánovaných dotazů a orchestrace dotazů pro naplnění datových marty nebo generování pravidelných datových výpisů.

Schopnost systému Hive robustněji zpracovávat déle běžící, složitější dotazy na datových sadách obrovského rozsahu z něj často činí lepší volbu pro tyto typy aplikací. Při rychlých akčních ad-hoc dotazech mohou startovací časy Hive LLAP ve srovnání s Impala zpomalit, nicméně u déle běžících dotazů jsou tyto startovací náklady relativně nepodstatnou částí celkové doby běhu. Hive LLAP se stává lepší volbou pro EDW také díky své odolnosti vůči chybám (kdo by chtěl, aby dotaz selhal, když dlouho čeká na výsledek?) a lepšímu výkonu u složitějších dotazů.

Použití Impala a Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • Dobrá volba pro interaktivní a ad-.hoc analýzy, zejména s vysokou souběžností samoobsluhy
  • Dobrá volba pro dlouhotrvající dotazy vyžadující náročné transformace nebo vícenásobné spojování
  • Dobrá volba pro interaktivní a ad-hoc analýzy využívající funkce, které nejsou v Impale k dispozici
  • Dobrá volba pro nástroje Business Intelligence, které umožňují uživatelům rychle měnit dotazy
  • Dobrá volba pro přístrojové panely, které jsou předemdefinovány a prohlížeč je nepřizpůsobuje
  • Používá Parquet jako preferovaný formát souboru
  • Používá ORC jako preferovaný formát souborů
  • S JSON si poradí lépe než Impala

S nárůstem případů použití se kombinují masivní datové soubory, výběr správného SQL enginu pro datové sklady, který umožní získat včasné výsledky, má zásadní význam.

Připojte se k nám na závody pro výsledky! Data Warehouse – Impala vs. Hive LLAP, živou debatu mezi odborníky, která se uskuteční 20. října 2020 v 10:00 amerického pacifického času, 13:00 amerického východního času, doplněnou o příklady případů použití u zákazníků a následovanou živým dotazováním&.

David Dichmann
David Dichmann

ředitel produktového marketingu

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.