Nykymaailmassa tuotetun datan määrä, kasvu on suorastaan valtava. Nopeus, jolla dataa tuotetaan kaikkialla maailmassa, määrä kaksinkertaistuu joka toinen vuosi.

Tämä johtaa Statistan arvioon, jonka mukaan vuoteen 2024 mennessä käsillä olevan datan määrä nousee 159 zettabaittiin eli 159 biljoonaan gigatavuun.

Tällaisten valtavien tuotettujen tietomäärien hallitsemiseksi ja hyödyntämiseksi datatutkijat eri puolilla maailmaa hyödyntävät big data -analyysityökaluja. Hadoop ja MongoDB kuuluvat näihin työkaluihin.

Tässä blogissa opimme, miten MongoDB ja Hadoop toimivat eri tavalla valtavassa tietomäärässä käyttämällä sen tiettyjä komponentteja.

Lyhyesti sanottuna MongoDB on hyvin kuuluisa NoSQL-tietokanta ja se säilyttää tietoja JSON-asetelmassa, kun taas Hadoop on kuuluisa Big data -työkalu, joka on rakennettu kooltaan yhdestä palvelimesta tuhansiin koneisiin tai järjestelmiin, joissa kukin järjestelmä mahdollistaa paikallisen laskennan ja tallennuksen.

”Jos meillä on dataa, katsotaan dataa. Jos meillä on vain mielipiteitä, mennään minun mielipiteilläni.”

– Jim Barksdale, entinen Netscapen toimitusjohtaja

Esittely

Kun dataa tuotetaan niin paljon, perinteiset menetelmät datan tallentamiseen ja käsittelyyn eivät tule soveltumaan lähiaikoina. Perinteinen menetelmä tunnetaan nimellä Big Data Analytics, ja se on saanut viime vuosina paljon suosiota. Se on ollut käytössä jo yli vuosikymmenen ajan.

Tämän valtavan tietomäärän tallentamiseksi ja käsittelemiseksi on tehty useita Big Data -teknologioita, jotka voivat auttaa datan jäsentämisessä tulevina aikoina. Tämä on johtanut 150 NoSQL-ratkaisuun juuri nyt.

(Lisää opittavaa, näin Big data -analytiikka muotoutuu IoT:hen).

Nämä ratkaisut ovat alustoja, joita ei ohjaa ei-relationaalinen tietokanta ja jotka usein yhdistetään Big Dataan. Kaikki niistä eivät kuitenkaan kelpaa Big Data -ratkaisuksi.

Vaikka ratkaisujen määrä saattaa näyttää todella vaikuttavalta, monia näistä teknologioista on käytettävä yhdessä toistensa kanssa. Lisäksi ne on räätälöity kapeille markkinoille tai niiden omaksumisaste voi olla alkuvaiheessa alhainen.

Näistä monista NoSQL-ratkaisuista jotkut ovat saavuttaneet huomattavan suuren suosion. Kaksi näistä suosituista ratkaisuista ovat Hadoop ja MongoDB.

Vaikka molemmilla ratkaisuilla on paljon yhtäläisyyksiä ominaisuuksien, kuten skeemattomuuden, avoimen lähdekoodin, NoSQL- ja MapReduce-ominaisuuksien, suhteen, niiden metodologia tietojen tallentamisessa ja käsittelyssä eroaa merkittävästi.

Tässä tarkastellaan MongoDB:n ja Hadoopin eroja perustuen

  1. Alustojen historia

  2. Alustojen toiminta

  3. Rajoitukset of the platforms

History of the Platforms

MongoDB

MongoDB-tietokantaratkaisun kehitti alun perin vuonna 2007 yritys nimeltä 10gen, joka tunnetaan nykyään nimellä MongoDB. Se kehitettiin pilvipohjaiseksi sovellusmoottoriksi, jonka motiivina on ajaa useita palveluja ja ohjelmistoja.

  • Yhtiö kehitti kaksi komponenttia – Babble ja MongoDB. Tuote ei kyennyt jättämään jälkeä, mikä johti sovelluksen romuttamiseen ja MongoDB:n julkaisemiseen avoimen lähdekoodin projektina.

  • Lähdettyään avoimen lähdekoodin ohjelmistona MongoDB otti vauhtia ja sai kasvavan yhteisön tuen. Siihen tehtiin useita parannuksia, joiden tarkoituksena oli parantaa ja integroida alustaa.

  • MongoDB:tä voidaan pitää tehokkaana Big Data -ratkaisuna. On kuitenkin tärkeää muistaa, että se on yleiskäyttöinen alusta, joka on suunniteltu korvaamaan tai parantamaan olemassa olevia DBMS-järjestelmiä.

Hadoop

MongoDB:stä poiketen Hadoop oli alusta asti ollut avoimen lähdekoodin projekti. Sen loi Doug Cutting, ja se sai alkunsa Nutch-nimisestä projektista, joka oli vuonna 2002 luotu avoimen lähdekoodin webcrawler.

  • Lähdön jälkeen Nutch seurasi useita vuosia Googlen jalanjälkiä. Esimerkiksi kun Google julkaisi Distributed File System eli GFS:n, Nutch keksi myös omansa ja kutsui sitä NDFS:ksi.

  • Samoin kun Google keksi MapReduce-käsitteen vuonna 2004, myös Nutch ilmoitti MapReducen käyttöönotosta vuonna 2005. Sitten vuonna 2007 Hadoop julkaistiin virallisesti.

  • Hadoop vei Nutchin konseptia eteenpäin, ja siitä tuli alusta valtavien tietomäärien rinnakkaiseen käsittelyyn hyödykelaitteistoista koostuvissa klustereissa.

MongoDB:n ja Hadoopin toimivuus

Perinteiset relaatiotietokantojen hallintajärjestelmät eli RDBMS-järjestelmät on suunniteltu skeemojen ja taulukoiden ympärille, jotka auttavat tietojen järjestämisessä ja strukturoimisessa sarakkeiden ja rivien muotoon.

Suuri osa nykyisistä tietokantajärjestelmistä on RDBMS-järjestelmiä, ja näin tulee olemaan vielä huomattavan monta vuotta lähitulevaisuudessa. (Ymmärrä ero datajärvien ja tietovarastojen & tietokantojen välillä).

Vaikka RDBMS on hyödyllinen monille organisaatioille, se ei välttämättä sovellu kaikkiin tapauksiin käytettäväksi. Näissä järjestelmissä kohdataan usein skaalautuvuuteen ja tietojen replikointiin liittyviä ongelmia, kun kyse on suurten tietomäärien hallinnasta.

MongoDB

Sen vuoksi, että MongoDB on dokumenttipainotteinen tietokannan hallintajärjestelmä, se tallentaa tiedot kokoelmiin. Näitä tietokenttiä voidaan kysyä kerran, mikä on vastakohta RDBMS:n vaatimille useille kyselyille.

  • MongoDB tallentaa tiedot Binary JSON- eli BSON-muodossa. Nämä tiedot ovat helposti käytettävissä kaikkiin ad-hoc-kyselyihin, replikointiin, indeksointiin ja jopa MapReduce-aggregointiin.

  • MongoDB:n kirjoituskieli on C++, ja se voidaan ottaa käyttöön sekä Windows- että Linux-järjestelmässä.

  • Mutta koska MongoDB:tä harkitaan reaaliaikaisiin matalan viiveen projekteihin, Linux-koneiden pitäisi olla ihanteellinen valinta MongoDB:lle, jos tehokkuutta vaaditaan.

  • Yksi tärkeimmistä eroista MongoDB:n ja Hadoopin välillä on se, että MongoDB on tietokanta, kun taas Hadoop koostuu useista ohjelmistokomponenteista, joiden avulla voidaan luoda tietojenkäsittelykehys.

Hadoop

Hadoop on ohjelmistokehys, joka koostuu ohjelmistokehyksestä. Hadoop Distributed File System eli HDFS ja Java-kielellä kirjoitettu MapReduce ovat Hadoopin pääkomponentit.

Hadoopin toissijaiset komponentit muodostavat useiden muiden Apache-tuotteiden kokoelman. Näitä tuotteita ovat Hive, Pig, HBase, Oozie, Sqoop ja Flume.

  • Mikäli Hive on tarkoitettu tietojen kyselyyn, Pig on tarkoitettu valtavien tietokokonaisuuksien analysointiin. HBase on sarakepohjainen tietokanta, Oozie auttaa Hadoopin töiden aikatauluttamisessa ja Sqoopia käytetään rajapinnan luomiseen muihin järjestelmiin, joita voivat olla RDBMS, BI tai analytiikka. (Lue lisää parhaista BI-työkaluista ja -tekniikoista)

  • Hadoop on suunniteltu siten, että se toimii hyödykelaitteistojen klustereissa. Se pystyy myös kuluttamaan minkä tahansa muotoista dataa, mukaan lukien useista lähteistä otettua aggregoitua dataa.

  • Hadoopissa datan jakelua hallinnoi HDFS. Se tarjoaa myös valinnaisen tietorakenteen, joka on toteutettu HBasen avulla. Tämä auttaa datan jäsentämisessä sarakkeisiin.

  • Tämä eroaa RDBMS:n datan strukturoinnista, joka on kaksiulotteinen ja jakaa datan sarakkeisiin ja riveihin. Datan indeksointiin Hadoopissa käytetään Solrin kaltaisia ohjelmistoja.

Hadoopin ja MongoDB:n rajoitukset

Kummassakin MongoDB:ssä ja Hadoopissa on hienoja ominaisuuksia, mutta niillä on myös rajoituksensa. Olemme listanneet joitakin molempien alustojen rajoituksia, jotta voit päättää, kumpi on vähemmän rajoitettu.

MongoDB

Vaikka MongoDB sisältää paljon toiminnallisuuksia, sillä on kuitenkin omat rajoituksensa, kuten:

  • Käyttäjän on syötettävä koodit manuaalisesti, jotta hän voi hyödyntää liitoksia. Se voi johtaa hitaampaan suoritukseen ja alle optimaalisen suorituskyvyn.

  • Jos käyttäjä haluaa edetä ilman joinseja, niin joinsien puuttuminen tarkoittaisi sitä, että MongoDB tarvitsee enemmän muistia, koska kaikki tiedostot on tällöin kartoitettava levyltä muistiin.

  • Dokumentin koko ei voi ylittää 16MB

  • Spesäkkäistoiminnallisuus on rajoitettu, eikä se voi ylittää 100 tasoa.

Hadoop

Hadoop on loistava alusta suurten tietojen analysointiin, mutta myös sillä on joitakin rajoituksia, kuten esim:

  • Hadoop käyttää MapReducea, joka soveltuu ohjelmointinsa vuoksi yksinkertaisiin pyyntöihin. Mutta kun käyttäjä yrittää suorittaa kehittynyttä analytiikkaa, joka sisältää vuorovaikutteisia ja iteratiivisia tehtäviä, jotka vaativat useita map- ja reduce-prosesseja suorittaakseen, map- ja reduce-vaiheiden välillä luodaan lukuisia tiedostoja. Tämä johtaa tehtävän tehokkuuden heikkenemiseen.

  • Suuri osa aloittelevista ohjelmoijista ei kykene työskentelemään Hadoopin kanssa, koska Mapreduce-ohjelman toiminta edellyttää korkeita java-taitoja. Tämä johtaa SQL:n suosimiseen Hadoopin sijaan, koska SQL on helppo käyttää aloitteleville ohjelmoijille.

  • Hadoop on monimutkainen alusta ja vaatii monimutkaista tietämystä toimintojen, kuten turvallisuusprotokollien, mahdollistamiseksi.

  • Hadoopissa on rajallinen valikoima työkaluja, joita tarvitaan metadatan käsittelyyn tai tietojen laadun puhdistamiseen, varmistamiseen ja hallintaan.

  • Hadoop ei pysty tehokkaasti hallitsemaan pieniä tiedostoja sen monimutkaisen rakenteen vuoksi.

Loppusanat

Johtopäätöksenä voidaan todeta, että Hadoop on aidoin ja houkuttelevin työkalu Big datassa. Se kerää massiivisen joukon dataa varattuun järjestelmään ja operoi dataa samanaikaisesti nipussa solmuja.

Toisaalta MongoDB on kuuluisa terävästä suorituskyvystä tai toteutuksesta, johtavasta käytettävyydestä ja spontaanista skaalautumisesta.

Kumpikin Hadoop ja MongoDB ovat loistavia valintoja, kun puhutaan data-analytiikasta. Vaikka niillä on monia yhtäläisyyksiä, kuten avoin lähdekoodi, skeemattomuus, MapReduce ja NoSQL, niiden lähestymistapa tietojen käsittelyyn ja tallentamiseen on erilainen.

Tässä blogissa olemme listanneet edessäsi molempien toiminnallisuudet ja rajoitukset, jotta voit päättää, kumpi on parempi. Toivomme, että blogi on informatiivinen ja pystyi lisäämään tietämystäsi.

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista.