Choosing the right Data Warehouse SQL Engine: Apache Hive LLAP vs Apache Impala

Eikö kaksi supersankaria olekin parempi kuin yksi?

Joitakin tehokkaimpia tuloksia saadaan yhdistämällä toisiaan täydentäviä supervoimia, ja Cloudera Data Warehouse -tietovarastoon sisältyvien Apache Hive LLAP:n ja Apache Impalan ”dynaaminen kaksikko” on jälleen yksi osoitus tästä. Sekä Impala että Hive voivat toimia ennennäkemättömän suuressa ja massiivisessa mittakaavassa, jossa on useita petatavuja dataa. Molemmat ovat 100-prosenttisesti avoimen lähdekoodin ohjelmistoja, joten voit välttää myyjäsidonnaisuutta käyttäessäsi suosikki BI-työkalujasi ja hyötyä yhteisöpohjaisesta innovaatiosta.

Kumpikin Impala ja Hive LLAP kuulostavat siltä, että ne sopivat loistavasti tietovarastojeni käyttötapauksiin, joten miksi minun on todella päätettävä näiden kahden välillä? Vastaus on yksinkertainen: kummallakin on omat ainutlaatuiset erikoisuutensa, ja riippuen siitä, millaista analytiikkaa haluat tehdä, saatat huomata, että toinen soveltuu paremmin kuin toinen. On kuitenkin olemassa salaisuus, jonka pidän blogin loppuun asti ja joka tekee päätöksenteosta entistäkin helpompaa käyttäjälle: itse asiassa niin helppoa, ettei sinun tarvitse edes päättää itse.

Ennen kuin menen näiden SQL-moottoreiden välisiin eroihin, on tärkeää huomata, että sekä Impala että Hive LLAP jakavat saman datan ja metadatan (Hive Metastoren kautta), joten sen lisäksi, että voit vaihtaa toisesta toiseen, jos muutat mielesi, voit jopa ajaa eri työkuormituksia käyttäen eri moottorivalintoja samoilla tiedoilla samaan aikaan. Todellinen ”molempien maailmojen parhaat puolet” -tilanne.

Miksi siis valita? No, yleisesti ottaen Impala toimii parhaiten, kun olet vuorovaikutuksessa datamartin kanssa, joka on tyypillisesti suuri tietokokonaisuus, jonka skeema on rajattu. Samaan aikaan Hive LLAP on parempi valinta käsiteltäessä käyttötapauksia laajemmassa laajuudessa yrityksen tietovarastossa. Näihin käyttötapauksiin liittyy usein useita osastoja ja erilaisia jatkojalostussovelluksia, jotka molemmat johtavat laajempiin kyselymalleihin. Näemme myös, että Impala on hyvä valinta interaktiivisiin, tilapäisiin kyselyihin, etenkin jos käytössä on satoja tai tuhansia käyttäjiä, jotka työskentelevät omatoimisesti.

Voit myös yhdistellä ja yhdistellä, jolloin voit käyttää Impalaa joihinkin kyselyihin ja joihinkin taulukoihin ja Hive LLAP:tä toisiin kyselyihin ja toisiin taulukoihin.

Impala on suunniteltu nopeutta varten.

Kirjoitettu C++-kielellä, joka on erittäin CPU-tehokas, erittäin nopealla kyselysuunnittelijalla ja metatietojen välimuistitallennuksella, Impala on optimoitu matalan viiveen kyselyihin. Tämän vuoksi Impala on ihanteellinen moottori käytettäväksi datamartin kanssa, koska datamarttien kanssa työskentelevät ihmiset suorittavat enimmäkseen vain lukukyselyjä eivätkä laajamittaisia kirjoituksia.

Impalassa on myös erittäin tehokas ajonaikainen suorituskehys, jossa käytetään koodin generointia, prosessien välistä viestintää, massiivista rinnakkaisuutta ja metatietojen välimuistitallennusta. Tämän vuoksi Impala on loistava myös työskenneltäessä ad-hoc-kyselyiden kanssa, kuten tutkittaessa iteratiivisesti dataa kaivamalla. Haluat muuttaa kyselyäsi yhä uudelleen ja uudelleen, hetken mielijohteesta, ja sinulla on erittäin nopeat vasteajat, jotta et odota ikuisesti jokaista iteraatiota.

Hive LLAP on suunniteltu hienostuneisuutta varten.

Hive LLAP:lla on monia hienostuneita ominaisuuksia, jotka saattavat vaikeuttaa hieman kehittäjien alkuun pääsyä ja tehokasta käyttöä. Hive LLAP:ssa kyselyn suunnittelu ja ramppaus suoritusta varten kestää joskus pidempään. Hive on kuitenkin suunniteltu hyvin vikasietoiseksi. Jos pitkäkestoisen kyselyn fragmentti epäonnistuu, Hive siirtää sen uudelleen ja yrittää uudelleen. Hive-välimuisti tallentaa datatiedostot ja kyselytulokset välimuistiin kehittyneiden algoritmien avulla, mikä tarkoittaa, että useammin pyydetyt tiedot pysyvät välimuistissa LLAP:n avulla. Hive LLAP tukee kyselyjen yhdistämistä sallimalla kyselyjen suorittamisen useiden komponenttien ja tietokantojen välillä. Näin ollen Hive LLAP korvaa EDW-käyttötapauksissa mahdollisen ”hitaan alun”, sillä se on pitkällä aikavälillä paljon vankempi ja suorituskykyisempi.

Tämän hienostuneisuuden ja joustavuuden vuoksi Hive LLAP soveltuu paremmin yritysten tietovarastojen eli EDW-käyttötapauksiin. EDW:n avulla tuet Business Intelligence -raportteja ja -näyttötauluja, riippuvaisia tietomarketteja, muita yrityssovelluksia, ulkoisia järjestelmiä ja paljon muuta. Näissä työmäärissä otetaan usein huomioon useita ulottuvuuksia, minkä vuoksi EDW:n on usein käsiteltävä monimutkaisempia SQL-vaatimuksia kuin tietomarkettien, ja niissä tarvitaan enemmän monimutkaisia tietotyyppejä, useampia aikataulutettuja kyselyjä ja kyselyjen orkestrointia tietomarkettien täyttämiseksi tai säännöllisten tietouutteiden luomiseksi.

Hiven kyky käsitellä pidempään käynnissä olevia, monimutkaisempia kyselyjä massiivisissa tietokokonaisuuksissa tekee siitä usein paremman valinnan tämäntyyppisiin sovelluksiin. Nopeissa ad-hoc-kyselyissä Hive LLAP:n käynnistymisaika saattaa hidastaa sitä Impalaan verrattuna, mutta pidempikestoisissa kyselyissä tämä käynnistymiskustannus on suhteellisen merkityksetön osa kokonaisajoajasta. Hive LLAP on parempi valinta EDW:hen myös siksi, että se on vikasietoisempi (kuka haluaisi, että kysely epäonnistuu, jos tulosta joutuu odottamaan pitkään?) ja suorituskyky on parempi monimutkaisemmissa kyselyissä.

Impalan ja Hive LLAP:n käyttö

Impala Hive LLAP
Data mart Yritystietovarasto
  • Hyvä valinta interaktiiviseen ja mainosmateriaaliin.hoc-analyysiin, erityisesti korkean samanaikaisuuden itsepalvelussa
  • Hyvä valinta pitkäkestoisiin kyselyihin, jotka vaativat raskaita muunnoksia tai useita yhdistelmiä
  • Hyvä valinta interaktiiviseen ja ad-ad hoc -analyyseihin, joissa käytetään ominaisuuksia, joita ei ole saatavilla Impalassa
  • Hyvä valinta Business Intelligence -työkaluihin, joiden avulla käyttäjät voivat nopeasti muuttaa kyselyjä
  • Hyvä valinta dashboardeihin, jotka ovat valmiiksimääriteltyjä ja joita katsoja ei voi muokata
  • Käyttää ensisijaisena tiedostomuotona Parquetia
  • Käyttää ORC:tä ensisijaisena tiedostomuotona
  • Suoriutuu JSON:n kanssa paremmin kuin Impala

Kun massiiviset tietomäärät yhdistyvät ja käyttötapaukset kasvavat, oikean tietovaraston SQL-moottorin valinnalla oikea-aikaisten tulosten saamiseksi on suuri merkitys.

Tule mukaan Racing for Results -tapahtumaan! Data Warehouse – Impala vs. Hive LLAP, vilkas keskustelu asiantuntijoiden kesken, 20. lokakuuta 2020 klo 10:00 Yhdysvaltain tyynenmeren aikaa, 13:00 Yhdysvaltain itäistä aikaa, täydellisenä asiakkaiden käyttötapausesimerkkien kera, ja sen jälkeen live q&a.

David Dichmann
David Dichmann

Tuotemarkkinointijohtaja

Vastaa

Sähköpostiosoitettasi ei julkaista.