Ohjelmointi

MongoDB, Cassandra ja HBase - kolme katsottavaa NoSQL-tietokantaa

Hadoop saa suuren osan big data -hyvityksestä, mutta todellisuus on, että NoSQL-tietokantoja käytetään paljon laajemmin - ja paljon laajemmin. Itse asiassa, vaikka ostaminen Hadoop-myyjältä on suhteellisen yksinkertaista, NoSQL-tietokannan valitseminen on kaikkea muuta. Loppujen lopuksi NoSQL-tietokantoja on yli 100, kuten DB-Engines -tietokantojen suosio ranking osoittaa.

Kumpi sinun pitäisi valita?

Hemmoteltu valinnan mukaan

Koska valitse sinun täytyy. Niin mukavaa kuin se voikin olla, elää niin sanotun polyglot-pysyvyyden onnellisessa utopiassa, "missä kaikilla kunnollisilla yrityksillä on käytössään erilaisia ​​erilaista datan tallennustekniikkaa erityyppisille tiedoille", kuten Martin Fowler väittää, todellisuus sinulla ei ole varaa sijoittaa oppimiseen enemmän kuin muutama.

Onneksi valinta on helpompaa, kun markkinat yhdistyvät kolmen hallitsevan NoSQL-tietokannan ympärille: MongoDB (entisen työnantajan tukema), Cassandra (pääasiassa DataStaxin kehittämä, vaikka haudattu Facebookissa) ja HBase (tiiviisti Hadoopin kanssa ja kehitetty sama yhteisö).

Huomaa, että jätän Redisin tarkoituksellisesti pois tästä luettelosta. Hyvässä tietovarastossa sitä käytetään ensisijaisesti tietojen välimuistiin tallentamiseen, eikä se sovellu hyvin monenlaisiin työmääriin.

LinkedIn-tiedot 451-tutkimuksesta osoittavat, kuinka markkinat painostavat MongoDB: tä, Cassandraa ja HBasea:

Se on LinkedIn-profiilin data. Täydellisempi näkymä on DB-Engines ', joka yhdistää työpaikat, haun ja muut tiedot tietokannan suosion ymmärtämiseksi. Vaikka Oracle, SQL Server ja MySQL ovat hallitsevia, MongoDB (nro 5), Cassandra (nro 9) ja HBase (nro 15) antavat heille juoksun rahoilleen.

Vaikka on liian aikaista kutsua kaikkia muita NoSQL-tietokantoja pyöristysvirheeksi, olemme nopeasti saavuttamassa tämän pisteen, aivan kuten tapahtui relaatiotietokantamarkkinoilla.

Ymmärtääkseni paremmin miksi nämä kolme tietokantaa loistavat, pyysin kummankin edustajia tunnistamaan menestyksensä tärkeimmät ominaisuudet: Kelly Stirman, MongoDB: n tuotteiden johtaja; Patrick McFadin, Cassandran pääedustaja DataStaxissa; ja Justin Kestelyn, kehittäjäsuhteiden vanhempi johtaja Clouderasta.

Mutta ensin meidän on ymmärrettävä, miksi NoSQL: llä on merkitystä.

Rakentamattomilla tiedoilla rakennettu maailma

Elämme yhä enemmän maailmassa, jossa data ei mahdu kunnolla RDBMS: n siistiin riveihin ja sarakkeisiin. Mobiili-, sosiaalinen ja pilvipalvelut ovat synnyttäneet valtavan määrän tietoa. Erilaisten arvioiden mukaan 90 prosenttia maailman tiedoista on luotu kahden viime vuoden aikana, ja Gartner on sitonut 80 prosenttia kaikista yritystiedoista rakenteettomiksi. Lisäksi strukturoimaton data kasvaa kaksinkertaisesti strukturoidun datan nopeudella.

Maailman muuttuessa tiedonhallintavaatimukset ylittävät perinteisten relaatiotietokantojen tehokkaan soveltamisalan. Ensimmäiset organisaatiot, jotka havaitsivat vaihtoehtoisten ratkaisujen tarpeen, olivat verkkotien edelläkävijöitä, valtion virastoja ja tietopalveluihin erikoistuneita yrityksiä.

Yhä useammin yritykset haluavat hyödyntää vaihtoehtojen, kuten NoSQL: n ja Hadoopin, etua: NoSQL rakentaa operatiivisia sovelluksia, jotka ohjaavat liiketoimintaansa sitouttamisjärjestelmien kautta, ja Hadoop rakentaa sovelluksia, jotka analysoivat tietojaan takautuvasti ja auttavat tuottamaan tehokkaita oivalluksia .

MongoDB: Kehittäjistä, kehittäjille

NoSQL-vaihtoehdoista MongoDB: n Stirman huomauttaa, että MongoDB on pyrkinyt tasapainoiseen lähestymistapaan, joka soveltuu monenlaisiin sovelluksiin. Vaikka toiminnallisuus on lähellä perinteisen relaatiotietokannan ominaisuuksia, MongoDB antaa käyttäjille mahdollisuuden hyödyntää pilvi-infrastruktuurin etuja sen horisontaalisen skaalautuvuuden avulla ja työskennellä helposti nykyisin käytössä olevien erilaisten tietojoukkojen kanssa joustavan tietomallinsa ansiosta.

MongoDB on usein ensimmäinen NoSQL-tietokannan kehittäjä, koska se on niin helppo oppia. Will Shulman, MongoLabin (MongoDB-as-a-service-palveluntarjoaja) toimitusjohtaja, sanoo sen näin:

MongoDB: n suhteeton menestys perustuu suurelta osin sen innovaatioon tietorakennevarastona, jonka avulla voimme mallintaa sovelluksemme ytimessä olevat "asiat" helpommin ja ilmeikkäämmin.

Saman perustietomallin käyttäminen koodissamme ja tietokannassamme on erinomainen menetelmä useimmissa käyttötapauksissa, koska se yksinkertaistaa dramaattisesti sovelluskehityksen tehtävää ja eliminoi muuten tarvittavat monimutkaiset kartoituskoodikerrokset.

Erityisesti MongoDB, kuten muut tämän luettelon tietokannat, ei ole yhden temppu poni. Yritykset, jotka oppivat MongoDB: n, voivat "amortisoida investointinsa MongoDB: hen monissa, monissa projekteissa, mikä tekee siitä yhden lyhyt luettelo standardeista, joihin ne luottavat kaikessa tiedonhallinnassa", kuten Stirman kertoi minulle.

Kuten kaikilla tekniikoilla, MongoDB: llä on tietysti myös vahvuutensa ja heikkoutensa. MongoDB on suunniteltu OLTP-kuormituksille. Se voi tehdä monimutkaisia ​​kyselyjä, mutta se ei välttämättä sovi parhaiten raportointityylisiin työmääriin. Tai jos tarvitset monimutkaisia ​​tapahtumia, se ei ole hyvä valinta. MongoDB: n yksinkertaisuus tekee siitä kuitenkin loistavan paikan aloittaa.

Cassandra: Aja turvallisesti mittakaavassa

Tietokantojen yksinkertaisuutta on ainakin kahdenlaisia: kehityksen yksinkertaisuus ja toiminnallinen yksinkertaisuus. Vaikka MongoDB saa oikeutetusti helpon käyttövalmiuden, Cassandra ansaitsee täyden arvosanan siitä, että sitä on helppo hallita mittakaavassa.

Kuten DataStaxin McFadin kertoi minulle, käyttäjillä on taipumus kiihtyä Cassandraan, sitä enemmän he tukevat päätään suhteellisuustietokantojen nopeuttamisesta ja luotettavuudesta, erityisesti mittakaavassa. Entinen Oracle DBA, McFadin oli innokkaana havaitsemaan, että "replikointi ja lineaarinen skaalaus ovat primitiivisiä" Cassandran kanssa, ja ominaisuudet olivat "ensisijainen suunnittelutavoite alusta alkaen".

RDBMS-maailmassa tietokannan ominaisuudet, kuten skaalaus ja replikointi, ovat käyttäjälle jääneitä vaikeita osia. Tämä toimi hyvin eilisessä yrityksessä, kun mittakaava ei ollut iso asia. Tänään siitä on tulossa nopeasti ongelma.

Kuten kuulin McFadinilta ja muilta, Cassandra loistaa erityisesti laajennetuissa käyttöönotoissa. Cassandran mukana tulee paistettu tuki useille palvelinkeskuksille. Mitä tulee kapasiteetin lisäämiseen klusteriin: "Käynnistä vain uusi kone ja kerro Cassandralle, missä muut solmut ovat", McFadin sanoi. "Ja se huolehtii lopusta."

Tämä skaalautumisen helppous yhdistettynä poikkeukselliseen kirjoitusominaisuuteen ("Kaikki, mitä teet, on lokitiedoston loppuun") ja ennakoitava kyselyn suorituskyky, muodostavat tehokkaan työhevosen Cassandrassa.

Yksi pitkään pitämäni NoSQL-uskon artikkeli on, että Cassandra voi olla mittakaavassa voimakas, mutta aloittaminen vaatii tohtorin tutkinnon. Ei niin, McFadin vaati:

Replikointi-, luku- ja kirjoituspolut ovat tarkoituksenmukaisesti yksinkertaisia. Voit oppia Cassandran ytimen sisäosat muutamassa tunnissa. Tämä voi tuoda paljon itseluottamusta uuden tekniikan käyttöönoton yhteydessä, koska monimutkaisissa vikatiloissa on vähemmän "mustan laatikon" yksityiskohtia.

Tämä tarkoittaa, että Cassandran tehokkaaseen kehitykseen pääsyn hinta on tietomallin ymmärtäminen ja miten se toimii sovelluksesi kanssa. Ottaen huomioon Cassandran CQL-kyselykielen (jonka on tarkoitus olla "täsmälleen samanlainen kuin SQL, paitsi kun se ei ole") tuntemus, McFadin sanoi, että se ei ole jyrkkä oppimiskäyrä.

Vielä tärkeämpää hän kertoi minulle: “Cassandra palkitsee sinut yhdellä asiaalla, jonka haluat tietokannasta: ei draamaa. Siksi käyttäjät rakastavat käyttää Cassandraa. "

HBase: Bosom-ystävät Hadoopin kanssa

HBase, kuten Cassandra, sarakekeskeinen avainarvomyymälä, saa paljon käyttöä suurelta osin Hadoopin kanssa yhteisen sukutaulunsa vuoksi. Itse asiassa, kuten Clouderan Kestelyn sanoi, "HBase tarjoaa ennätyspohjaisen tallennuskerroksen, joka mahdollistaa nopean, satunnaisen lukemisen ja tietojen kirjoittamisen täydentäen Hadoopia korostamalla suurta läpimenoa pienen viiveen I / O: n kustannuksella."

Kestelyn jatkaa:

Muutokset on luetteloitu tehokkaasti muistiin, jotta saavutetaan suurin mahdollinen pääsy, kun tietoja säilytetään HDFS: ssä. Tämän suunnittelun avulla Hadoop-pohjainen EDH [yritystietokeskus] voi palvella satunnaisia ​​lukuja ja kirjoituksia käyttäjille ja sovelluksille reaaliajassa, mutta silti nauttia HDFS: n vikasietoisuudesta ja kestävyydestä.

Yhteenkuuluvuus Hadoopin kanssa ei ole ainoa syy, miksi HBase nousee jatkuvasti tietokantojen suosiossa, vaikka se saattaa riittää. Kuten Cassandra, HBasen juuret Googlen Bigtable-ohjelman avoimen lähdekoodin toteutuksena kääntyvät tietokantaan erittäin skaalautuvasti suunnittelun mukaan.

Koska HBase pystyy hyödyntämään minkä tahansa palvelimien tallennustilaa, muistia ja suorittimen resursseja, ja sillä on laajennusominaisuuksia, kuten automaattinen sirpaloituminen, HBase voi skaalata rajattomasti, kun kuormitus- ja suorituskykyvaatimukset kasvavat yksinkertaisesti lisäämällä palvelinsolmut. HBase on suunniteltu alusta alkaen tarjoamaan optimaalinen suorituskyky, kun johdonmukaisuus on kriittistä.

Mutta mittakaava ei ole vain apuohjelma. Kuten Kestelyn totesi: "Tiukan integroinnin ansiosta muuhun Hadoop-ekosysteemiin data on käyttäjien ja sovellusten helposti saatavissa SQL-kyselyjen kautta (käyttäen Cloudera Impalaa, Apache Phoenixia tai Apache Hiveä) tai jopa monipuolisella vapaamuotoisella haulla (käyttäen Cloudera-haku). " Siten HBase antaa kehittäjille keinon hyödyntää olemassa olevaa asiantuntemusta SQL: n kanssa samalla kun rakennetaan nykyaikaisemmalle, hajautetulle tietokannalle.

Jokaisella tietokannalla on omat vahvuutensa ja puutteensa, mutta kukin kolmesta tässä profiloidusta on täyttänyt merkittävän aukon big data -ympäristössä. Vaikka on mahdollista, että uusi tietokanta tulee hakemaan paikkaa NoSQL-kolmen parhaan joukossa (DynamoDB?), Tosiasia on, että kehittäjät ja heidän palvelemansa yritykset standardoivat jo muutamia vahvoja vaihtoehtoja: MongoDB, Cassandra ja HBase.

Nykyään Adoben matkapuhelinjohtajana toiminut Matt Asay oli aiemmin MongoDB, Inc. -yhtiön varapuheenjohtaja. Hän on avoimen lähdekoodin aloitteen (OSI) emerituslautakunnan jäsen ja ansainnut oikeustieteen tohtorin tutkinnon Stanfordissa, jossa hän keskittyi avoimeen lähdekoodiin ja muihin teollis- ja tekijänoikeuksien lisensointiasiat sekä hänen maisterinsä Kentin yliopistosta Canterburyssa ja kandidaatin tutkinnon Brigham Youngin yliopistosta. Asay oli yksi ensimmäisistä bloggaajista.

New Tech Forum tarjoaa mahdollisuuden tutkia ja keskustella kehittyvistä yritysteknologioista ennennäkemättömällä syvyydellä ja laajuudella. Valinta on subjektiivinen, perustuu valitsemiemme tekniikoihin, joiden uskomme olevan tärkeitä ja kiinnostavia lukijoille. ei hyväksy markkinointivakuuksia julkaisua varten ja pidättää oikeuden muokata kaikkea lähetettyä sisältöä. Lähetä kaikki tiedustelut osoitteeseen [email protected]