Due supereroi non sono meglio di uno?
Alcuni dei risultati più potenti vengono dalla combinazione di superpotenze complementari, e il “duo dinamico” di Apache Hive LLAP e Apache Impala, entrambi inclusi in Cloudera Data Warehouse, ne è un’ulteriore prova. Sia Impala che Hive possono operare su una scala massiccia e senza precedenti, con molti petabyte di dati. Entrambi sono al 100% open source, quindi puoi evitare il vendor lock-in mentre usi i tuoi strumenti di BI preferiti, e beneficiare dell’innovazione guidata dalla comunità.
Sia Impala che Hive LLAP sembrano funzionare alla grande per i miei casi d’uso del data warehouse, quindi perché devo davvero decidere tra i due? La risposta è semplice, ognuno ha le sue specialità uniche, e a seconda del tipo di analisi che vuoi fare, potresti trovare uno più adatto dell’altro. Tuttavia, c’è un segreto che conservo fino alla fine del blog, che rende la decisione ancora più facile per l’utente: così facile infatti, che non dovrete nemmeno decidere voi stessi.
Prima di addentrarmi nelle differenze tra questi motori SQL, è importante notare che sia Impala che Hive LLAP condividono gli stessi dati e metadati (attraverso l’Hive Metastore) quindi non solo si può passare da uno all’altro se si cambia idea, ma si possono anche eseguire diversi carichi di lavoro utilizzando diverse scelte di motori sugli stessi dati, allo stesso tempo. Una vera situazione da “meglio dei due mondi”.
Perché scegliere? Beh, in generale, Impala funziona meglio quando si interagisce con un data mart, che è tipicamente un set di dati di grandi dimensioni con uno schema di portata limitata. Nel frattempo, Hive LLAP è una scelta migliore per affrontare i casi d’uso nella più ampia portata di un data warehouse aziendale. Questi casi d’uso spesso coinvolgono più dipartimenti e una varietà di applicazioni a valle, entrambi i quali si traducono in una più ampia gamma di modelli di query. Vediamo anche che Impala è una buona scelta per le query interattive e ad-hoc, specialmente se avete centinaia o migliaia di utenti che lavorano per conto proprio.
Si può anche mescolare e abbinare, usando Impala per alcune query e alcune tabelle, e Hive LLAP per altre query e altre tabelle.
Impala è stato progettato per la velocità.
Scritto in C++, che è molto efficiente per la CPU, con un pianificatore di query molto veloce e il caching dei metadati, Impala è ottimizzato per query a bassa latenza. Per questo motivo, Impala è un motore ideale per l’uso con un data mart, poiché le persone che lavorano con i data mart eseguono per lo più query di sola lettura e non scritture su larga scala.
Impala ha anche un framework di esecuzione run-time molto efficiente, che utilizza la generazione di codice, la comunicazione da processo a processo, il parallelismo massiccio e il caching dei metadati. A causa di questo, Impala è anche ottimo quando si lavora con query ad-hoc, come quando si esplora scavando iterativamente nei dati. Vorrai cambiare la tua query più e più volte, con un preavviso di un momento, e avere tempi di risposta molto veloci in modo da non aspettare all’infinito per ogni iterazione.
Hive LLAP è stato progettato per la sofisticazione.
Hive LLAP ha molte capacità sofisticate che possono rendere un po’ più difficile per gli sviluppatori iniziare ad usarlo efficacemente. In Hive LLAP, a volte una query richiede più tempo per passare attraverso la pianificazione e il ramp-up per l’esecuzione. Tuttavia, Hive è progettato per essere molto tollerante agli errori. Se un frammento di una query di lunga durata fallisce, Hive lo riassegnerà e riproverà. Hive mette in cache i file di dati così come i risultati delle query, con algoritmi sofisticati, il che significa che i dati richiesti più frequentemente rimangono in cache con LLAP. Hive LLAP supporta la federazione delle query, permettendo l’esecuzione delle query su più componenti e database. Pertanto, Hive LLAP compensa qualsiasi “inizio lento” nei casi d’uso EDW, in quanto è molto più robusto e ha maggiori prestazioni nel lungo periodo.
A causa di questa sofisticazione e flessibilità, Hive LLAP è più adatto per i casi d’uso EDW (enterprise data warehouse). Con un EDW, si supportano report e cruscotti di Business Intelligence, data mart dipendenti, altre applicazioni aziendali, sistemi esterni e altro ancora. Questi carichi di lavoro spesso tengono conto di più dimensioni e, di conseguenza, gli EDW spesso devono elaborare requisiti SQL più complessi rispetto ai data mart, con una maggiore necessità di tipi di dati complessi, più query programmate e orchestrazione delle query per popolare i data mart o generare estratti di dati regolari.
La capacità di Hive di gestire in modo più robusto l’esecuzione di query più lunghe e complesse, su set di dati su larga scala, lo rende spesso la scelta migliore per questi tipi di applicazioni. Nelle query ad-hoc ad azione rapida, i tempi di avvio di Hive LLAP possono rallentare rispetto a Impala, ma con le query più lunghe, questo costo di avvio è una parte relativamente insignificante del tempo totale di esecuzione. Hive LLAP diventa una scelta migliore per EDW anche a causa della sua tolleranza agli errori (chi vuole che una query fallisca se si aspetta a lungo il risultato?) e delle migliori prestazioni sulle query più complesse.
Usare Impala e Hive LLAP
Impala | Hive LLAP |
Data mart | Enterprise data warehouse |
|
|
|
|
|
|
Come i set di dati massicci si combinano con la crescita dei casi d’uso, scegliere il giusto motore SQL per Data Warehouse per ottenere risultati tempestivi fa la differenza.
Unisciti a noi per correre per i risultati! Data Warehouse – Impala vs. Hive LLAP, un vivace dibattito tra esperti, il 20 ottobre 2020, 10:00am US pacific time, 1:00pm US eastern time, completo di esempi di casi d’uso dei clienti, e seguito da una q&a live.
Direttore Marketing Prodotti