MongoDB, Cassandra i HBase - tri baze podataka NoSQL za gledanje

Hadoop dobiva velik dio kredita za velike podatke, ali stvarnost je takva da su baze podataka NoSQL daleko šire raspoređene - i daleko šire razvijene. Zapravo, dok je kupnja dobavljača Hadoop-a relativno jednostavna, odabir baze podataka NoSQL sve je samo ne. Uostalom, ima više od 100 baza podataka NoSQL, kao što pokazuje ljestvica popularnosti baze podataka DB-Engines.

Koju biste trebali odabrati?

Razmažen izborom

Jer odabrati moraš. Koliko god bilo lijepo živjeti u sretnoj utopiji takozvane upornosti poliglota, „gdje će svako poduzeće pristojne veličine imati razne tehnologije za pohranu podataka za različite vrste podataka“, kako tvrdi Martin Fowler, stvarnost je ne možete si priuštiti ulaganje u učenje više od nekoliko.

Srećom, izbor je sve lakši jer se tržište spaja oko tri dominantne baze podataka NoSQL: MongoDB (potpomognut od mog bivšeg poslodavca), Cassandra (primarno razvijen od DataStax-a, iako izlegan na Facebooku) i HBase (usko usklađen s Hadoop-om i razvijen od strane ista zajednica).

Imajte na umu da Redis namjerno isključujem s ovog popisa. Iako je izvrsna pohrana podataka, prvenstveno se koristi za predmemoriranje podataka i nije dobro prilagođen širokom spektru radnih opterećenja.

Podaci LinkedIna iz istraživanja 451 pokazuju kako tržište gravitira MongoDB-u, Cassandri i HBase-u:

To su podaci profila LinkedIn. Potpuniji prikaz je DB-Engines 'koji objedinjuje poslove, pretraživanje i druge podatke da bi se razumjela popularnost baze podataka. Dok Oracle, SQL Server i MySQL vladaju vrhovima, MongoDB (br. 5), Cassandra (br. 9) i HBase (br. 15) daju im novac za svoj novac.

Iako je prerano nazvati svaku drugu NoSQL bazu podacima pogreškom zaokruživanja, brzo dosežemo tu točku, točno kao što se dogodilo na tržištu relacijskih baza podataka.

Da bih bolje razumio zašto ove tri baze podataka blistaju, zamolio sam predstavnike svake od njih da identificiraju ključne atribute svog uspjeha: Kelly Stirman, direktorica proizvoda u MongoDB-u; Patrick McFadin, glavni evanđelist Cassandre u DataStaxu; i Justin Kestelyn, viši direktor odnosa s programerima u Clouderi.

Ali prvo, moramo shvatiti zašto je NoSQL važan.

Svijet izgrađen s nestrukturiranim podacima

Sve više živimo u svijetu u kojem se podaci ne uklapaju lijepo u uredne redove i stupce RDBMS-a. Mobilno, socijalno i računalstvo u oblaku iznjedrilo je veliku poplavu podataka. Prema različitim procjenama, 90 posto svjetskih podataka stvoreno je u posljednje dvije godine, a Gartner je vezao 80 posto svih podataka poduzeća kao nestrukturirane. Štoviše, nestrukturirani podaci rastu dvostruko brže od strukturiranih podataka.

Kako se svijet mijenja, zahtjevi za upravljanjem podacima nadilaze učinkovit opseg tradicionalnih relacijskih baza podataka. Prve organizacije koje su uočile potrebu za alternativnim rješenjima bili su web pioniri, vladine agencije i tvrtke specijalizirane za informacijske usluge.

Sve češće tvrtke svih crta žele iskoristiti prednost alternativa poput NoSQL-a i Hadoop-a: NoSQL za izgradnju operativnih aplikacija koje njihovo poslovanje vode kroz sustave angažmana, a Hadoop za izradu aplikacija koje retroaktivno analiziraju njihove podatke i pomažu u pružanju snažnih uvida .

MongoDB: Od programera, za programere

Među NoSQL opcijama, ističe MongoDB-ov Stirman, MongoDB je težio uravnoteženom pristupu prilagođenom širokom spektru aplikacija. Iako je funkcionalnost bliska onoj tradicionalne relacijske baze podataka, MongoDB omogućuje korisnicima da iskoriste blagodati infrastrukture u oblaku svojom horizontalnom skalabilnošću i da lako rade s različitim skupovima podataka koji se danas koriste zahvaljujući svom fleksibilnom podatkovnom modelu.

MongoDB je često prvi NoSQL programer baze podataka koji će to pokušati jer ga je tako lako naučiti. Will Shulman, izvršni direktor tvrtke MongoLab (pružatelj usluge MongoDB-a-kao-usluge), kaže to ovako:

Nerazmjerni uspjeh MongoDB-a u velikoj se mjeri temelji na njegovoj inovaciji kao spremištu strukture podataka koja nam omogućuje lakše i izražajnije modeliranje "stvari" u srcu naših aplikacija ....

Imati isti osnovni model podataka u našem kodu i u bazi podataka superiorna je metoda za većinu slučajeva korištenja, jer dramatično pojednostavljuje zadatak razvoja aplikacije i uklanja slojeve složenog koda za mapiranje koji su inače potrebni.

Valja istaknuti da MongoDB, kao i ostale baze podataka na ovom popisu, nije poni s jednim trikom. Poduzeća koja nauče MongoDB "mogu amortizirati svoja ulaganja u MongoDB kroz mnoge, mnoge projekte, čineći ga jednim od užeg popisa standarda na koje se oslanjaju za cjelokupno upravljanje podacima", kako mi je rekao Stirman.

Naravno, kao i svaka tehnologija, MongoDB ima svoje prednosti i nedostatke. MongoDB je dizajniran za OLTP radna opterećenja. Može raditi složene upite, ali to nije nužno najbolje za opterećenja u stilu izvještavanja. Ili ako su vam potrebne složene transakcije, to neće biti dobar izbor. Međutim, jednostavnost MongoDB-a čini ga izvrsnim mjestom za početak.

Cassandra: Sigurno trčite u mjerilu

Postoje najmanje dvije vrste jednostavnosti baze podataka: jednostavnost razvoja i operativna jednostavnost. Iako MongoDB s pravom dobiva zasluge za lako izvan-kutijsko iskustvo, Cassandra zarađuje pune ocjene za lako upravljanje njime.

Kao što mi je rekao McFadin iz DataStaxa, korisnici teže gravitirati Cassandri što više udaraju glavom o poteškoće u stvaranju bržih i pouzdanijih relacijskih baza podataka, posebno u mjerilu. McFadin, bivši Oracleov DBA, s oduševljenjem je otkrio da su "replikacija i linearno skaliranje primitivni" kod Cassandre, a značajke su "glavni cilj dizajna od početka".

U svijetu RDBMS-a značajke baze podataka poput skaliranja i replikacije tvrdi su dijelovi koji su prepušteni korisniku. Ovo je dobro funkcioniralo u jučerašnjem poduzeću kad razmjere nisu bile veliki problem. Danas je brzo postaje problem.

Kao što sam čuo od McFadina i drugih, Cassandra posebno blista u razmještanju. Cassandra dolazi s ugrađenom podrškom za više podatkovnih centara. Što se tiče dodavanja kapaciteta klasteru, "Jednostavno pokrenete novi stroj i kažete Cassandri gdje su ostali čvorovi", rekao je McFadin, "a ona se brine za ostalo."

Ova jednostavnost skaliranja, zajedno s izuzetnim performansama pisanja ("Sve što radite je dodavanje na kraj datoteke dnevnika") i predvidljivim performansama upita, dodaju radnom konju visokih performansi u Cassandri.

Jedan od članaka o vjeri NoSQL-a koji sam dugo držao jest da je Cassandra možda moćna, ali za početak joj je potreban doktorat. Nije tako, McFadin je inzistirao:

Putovi replikacije i čitanja i pisanja su namjerno jednostavni. Ključne unutarnje dijelove Cassandre možete naučiti za nekoliko sati. To može donijeti puno samopouzdanja tijekom uvođenja nove tehnologije, jer je manje detalja "crne kutije" koji uvode složene načine neuspjeha.

To znači da je cijena za pristup učinkovitom razvoju Cassandre u razumijevanju podatkovnog modela i kako će on funkcionirati s vašom aplikacijom. S obzirom na poznavanje Cassandrinog jezika upita CQL (namijenjen da bude "točno poput SQL-a, osim kad nije"), McFadin je rekao da to nije strma krivulja učenja.

Još važnije, rekao mi je, “Cassandra vas nagrađuje jednom stvari koju želite od baze podataka: bez drame. Zbog toga korisnici vole koristiti Cassandru. "

HBase: Prijatelji s Hadoopom

HBase, poput Cassandre, orijentirane na stupce pohranjene ključ-vrijednosti, koristi se velikim dijelom zbog svog zajedničkog pedigrea s Hadoop-om. Zapravo, kako je rekao Clouderov Kestelyn, „HBase pruža sloj za pohranu zasnovan na zapisima koji omogućuje brzo, nasumično čitanje i upisivanje podataka, nadopunjujući Hadoop naglašavajući veliku propusnost na štetu I / O s malim kašnjenjem.“

Kestelyn nastavlja:

Promjene se učinkovito katalogiziraju u memoriji kako bi se postigao maksimalan pristup dok se podaci zadržavaju na HDFS-u. Ovaj dizajn omogućuje EDH-u temeljenom na Hadoop-u [središte podataka o poduzeću] da korisnicima i aplikacijama u stvarnom vremenu služi slučajnim čitanjima i upisima, a opet uživa u toleranciji kvarova i trajnosti HDFS-a.

Srodnost s Hadoop-om nije jedini razlog zbog kojeg HBase raste u rangu popularnosti baze podataka, iako bi to moglo biti dovoljno. Slično Cassandri, korijeni HBase-a kao otvorene implementacije Googleova Bigtablea prevode se u bazu podataka koja je vrlo skalabilna dizajnom.

Budući da može koristiti pohranu, memoriju i resurse procesora bilo kojeg broja poslužitelja, kao i da ima značajke smanjenja, poput automatskog oštrenja, HBase se može neograničeno skalirati kako se povećavaju zahtjevi za opterećenjem i performansama jednostavnim dodavanjem čvorova poslužitelja. HBase je dizajniran od temelja kako bi pružio optimalne performanse kada je dosljednost presudna.

Ali razmjera nije samo korisnost. Kao što je Kestelyn primijetio, „Zahvaljujući čvrstoj integraciji s ostatkom ekosustava Hadoop, podaci su lako dostupni korisnicima i aplikacijama putem SQL upita (pomoću Cloudera Impala, Apache Phoenix ili Apache Hive) ili čak facetiranog pretraživanja slobodnog teksta (pomoću Cloudera Search). " Dakle, HBase pruža programerima način da iskoriste postojeću stručnost u SQL-u, nadograđujući se na moderniju, distribuiranu bazu podataka.

Svaka baza podataka ima svoje vlastite snage i nedostatke, ali svaka od tri ovdje profilirana popunila je veliku rupu u pejzažu velikih podataka. Iako je moguće da će se pojaviti nova baza podataka koja će zauzeti mjesto među prva tri NoSQL-a (DynamoDB?), Stvarnost je da se programeri i poduzeća kojima posluju već standardiziraju na nekoliko jakih opcija: MongoDB, Cassandra i HBase.

Sada potpredsjednik kompanije Mobile za Adobe, Matt Asay je ranije bio potpredsjednik zajednice u MongoDB, Inc. Počasni je član odbora Open Source Initiative (OSI) i doktorirao na Stanfordu, gdje se usredotočio na otvoreni izvor i druge pitanja licenciranja intelektualnog vlasništva, a njegov magisterij sa Sveučilišta Kent u Canterburyju i njegov prvostupnik sa Sveučilišta Brigham Young. Asay je bio jedan od prvih blogera.

New Tech Forum pruža mjesto za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na [email protected]