Ohjelmointi

10 tapaa kysyä Hadoopia SQL: llä

SQL: vanha ja rikki. Hadoop: uusi kuumuus. Se on perinteistä viisautta, mutta suuri määrä projekteja, jotka asettavat kätevän SQL-käyttöliittymän Hadoop-tietovarastoihin, osoittavat, että on todella tarvetta tuotteille, jotka suorittavat SQL-kyselyjä Hadoopin sisällä elävien tietojen kanssa, sen sijaan, että pelkästään Hadoopin natiiviraportointia tai Hadoopin tietojen vienti tavanomainen tietokanta.

MapR tuottaa oman Hadoop-jakelun, ja uusin versio (4.0.1) niputtaa sen neljään erilliseen moottoriin Hadoop-pullo SQL: n kyselyyn. Nämä neljä ovat merkittäviä Hadoopin SQL-kyselyjärjestelmiä, mutta siellä on paljon enemmän SQL-for-Hadoop-tekniikkaa, ja ne on rakennettu täyttämään erilaiset tarpeet ja käyttötapaukset esoteerisesta universaaliin.

Ensinnäkin neljä MapR: n mukana tulevaa SQL-moottoria:

Apache Hive: Tämä on alkuperäinen SQL-on-Hadoop-ratkaisu, joka yrittää jäljitellä MySQL: n käyttäytymistä, syntaksia ja käyttöliittymiä, mukaan lukien komentoriviasiakkaat. Se sisältää myös Java-sovellusliittymän ja JDBC-ohjaimet niille, jotka ovat jo investoineet Java-sovelluksiin, jotka tekevät MySQL-tyylisiä kyselyjä. Suhteellisesta yksinkertaisuudesta ja helppokäyttöisyydestä huolimatta Hive on ollut hidas ja vain luku -toiminen, mikä on saanut aikaan useita aloitteita sen parantamiseksi.

Stinger: Oman Hadoop-jakelun tuottaja Hortonworks aloitti Stinger-projektin keinona edistää Apache Hiven kehitystä ja parantaa sen suorituskykyä. Projektin viimeisimmässä inkarnaatiossa, Stinger.next, on "toisen sekunnin kyselyn vasteajat" yksi suunnittelutavoitteistaan ​​sekä tuki tapahtumakäyttäytymisille (lisäykset, päivitykset ja poistot). Nämä muutokset on tarkoitus julkaista seuraavien 18 kuukauden aikana, ja muita ominaisuuksia, kuten SQL-analytiikkaa, on noudatettava.

Apache-poraus: Googlen Dremelin (alias BigQuery) avoimen lähdekoodin toteutus Drill kehitettiin suorittamaan matalaviiveinen kysely useille tietovarastotyypeille kerralla erilaisilla kyselyliitännöillä (kuten Hadoop ja NoSQL) ja olemaan erittäin skaalautuva. Drillin on myös tarkoitus suorittaa kyselyjä monilla toteutusajoilla, jotka kestävät vain muutaman millisekunnin minuuttien ajaksi. MapR väittää, että Drill on tulevaisuuteen suuntautuva, ei pelkästään taaksepäin yhteensopiva, yksi syy siihen, miksi se on valittu asettamaan omat kehitystyönsä projektin taakse.

Spark SQL: Apachen Spark-projekti on tarkoitettu reaaliaikaiseen, muistissa tapahtuvaan, rinnakkaiseen Hadoop-tietojen käsittelyyn. Spark SQL rakentaa sen päälle, jotta SQL-kyselyt voidaan kirjoittaa dataa vastaan. Parempi tapa ajatella sitä voi olla Apache Hive Apache Sparkille, koska se käyttää uudelleen Hive-tekniikan keskeisiä kappaleita. Tässä mielessä se on lisäaine niille, jotka jo työskentelevät Sparkin kanssa. (Aiempi projekti, Shark, on sisällytetty tähän.)

Näiden neljän lisäksi erottuu kuusi muuta:

Apache Phoenix: Sen kehittäjät kutsuvat sitä "SQL-skiniksi HBaselle" - tapa kysyä HBasea SQL-tyyppisillä komennoilla upotettavan JDBC-ohjaimen kautta, joka on rakennettu korkean suorituskyvyn sekä luku / kirjoitusoperaatioihin. Pidä sitä melkein vaivattomana HBasea käyttäville, koska se on avointa lähdekoodia, aggressiivisesti kehitetty ja varustettu hyödyllisillä ominaisuuksilla, kuten joukkolatauksella.

Cloudera Impala: Joillakin tavoin Impala on toinen Dremel / Apache Drill -ratkaisu, joka on suunniteltu laajentamaan Hiveä siten, että poistuvat Hive-käyttäjät voivat hyödyntää sitä parhaalla mahdollisella tavalla. Joko HDFS: ään tai HBaseen tallennettuja tietoja voidaan kysyä, ja SQL-syntakse on ennustettavasti sama kuin Apache Hive. Mutta Impalan tärkein ero Drillistä on, että sen ei ole tarkoitus olla lähde-agnostinen; se kysyy yksinomaan Hadoopia.

HAWQ Pivotal HD: lle: Pivotal tarjoaa oman Hadoop-jakelun (Pivotal HD), ja HAWQ on oma komponentti SQL-kyselyjen suorittamiseen HDFS: ssä. Näin ollen se on vain Pivotal-tuote, vaikka Pivotal kannustaa sen rinnakkaisesta SQL-prosessoinnista ja SQL-standardien korkeasta noudattamisesta.

Presto: Facebookin insinöörien rakentama ja yrityksen sisällä käytetty tämä avoimen lähdekoodin kyselymoottori muistuttaa Apache Drilliä siinä mielessä, että se on lähde-agnostinen. Se voi kysellä sekä Hiveä että Cassandraa ANSI SQL -komennoilla, ja kehittäjät voivat laajentaa järjestelmää kirjoittamalla sille liittimet palveluntarjoajan käyttöliittymän kautta. Joitakin tietojen lisäystoimintoja tuetaan, mutta ne ovat silti hyvin yksinkertaisia: Et voi suorittaa päivityksiä, vain lisäyksiä.

Oracle Big Data SQL: Oli vain ajan kysymys, ennen kuin Oracle julkaisi oman SQL-kyselykäyttöliittymänsä Hadoopille. Kuten Drill, se voi kysellä sekä Hadoopia että muita NoSQL-kauppoja. Mutta toisin kuin Drill, se on Oraclen oma tuote, ja se integroituu vain Oracle Database 12c: n ja sitä uudempien versioiden kanssa, mikä rajoittaa vakavasti sen markkinoita.

IBM BigSQL: Oli vain ajan kysymys, ennen kuin IBM teki saman, vaikka se ilmoitti BigSQL: n ensimmäisestä tekniikan esikatselusta jo vuoden 2013 alussa. Valitettavasti, kuten Oraclen tarjouksessa, se on sidottu tiettyyn IBM-tuotteeseen takana - tässä tapauksessa , IBM: n Hadoop, InfoSphere BigInsights. Etuosa voi kuitenkin olla tavallinen JDBC / ODBC-asiakas, ja kyselyt voivat sisältää tietoja IBM DB2-, Teradata- tai PureData Systems -järjestelmistä Analytics-ilmentymille.

$config[zx-auto] not found$config[zx-overlay] not found