Programavimas

„MongoDB“, „Cassandra“ ir „HBase“ - trys stebimos „NoSQL“ duomenų bazės

Hadoopas gauna didelę dalį didelių duomenų kredito, tačiau realybė yra ta, kad „NoSQL“ duomenų bazės yra kur kas plačiau naudojamos ir kuriamos plačiau. Tiesą sakant, nors „Hadoop“ pardavėjo apsipirkimas yra gana paprastas, „NoSQL“ duomenų bazės pasirinkimas yra ne kas kita. Galų gale yra daugiau nei 100 „NoSQL“ duomenų bazių, kaip rodo „DB-Engines“ duomenų bazių populiarumo reitingas.

Ką turėtumėte pasirinkti?

Sugadino pasirinkimą

Nes rinkis privalai. Kad ir kaip būtų malonu gyventi laimingoje vadinamojo poligloto atkaklumo utopijoje, „kur bet kurios padoraus dydžio įmonės turės įvairias skirtingas duomenų saugojimo technologijas įvairiems duomenims“, kaip teigia Martin Fowler, realybė yra jūs negalite sau leisti investuoti į mokymąsi daugiau nei keli.

Laimei, pasirinkimas tampa lengvesnis, nes rinka susijungia aplink tris dominuojančias „NoSQL“ duomenų bazes: „MongoDB“ (palaikoma mano buvusio darbdavio), „Cassandra“ (pirmiausia sukurta „DataStax“, nors ir išsirita „Facebook“ tinkle) ir „HBase“ (glaudžiai suderinta su „Hadoop“ ir sukurta ta pati bendruomenė).

Atkreipkite dėmesį, kad aš tikslingai pašalinu Redį iš šio sąrašo. Nors tai puiki duomenų saugykla, ji visų pirma naudojama duomenims išsaugoti talpykloje ir netinka įvairiems darbo krūviams.

„LinkedIn“ duomenys iš 451 tyrimo rodo, kaip rinka gravituoja MongoDB, Cassandra ir HBase:

Tai „LinkedIn“ profilio duomenys. Išsamesnis vaizdas yra „DB-Engines“, kuriame kaupiami darbai, paieška ir kiti duomenys, siekiant suprasti duomenų bazių populiarumą. Kol „Oracle“, „SQL Server“ ir „MySQL“ karaliauja, MongoDB (Nr. 5), „Cassandra“ (Nr. 9) ir „HBase“ (Nr. 15) leidžia jiems bėgti už savo pinigus.

Nors per anksti kas antrą „NoSQL“ duomenų bazę vadinti apvalinimo klaida, mes greitai pasiekiame tą tašką, lygiai taip, kaip nutiko reliacinių duomenų bazių rinkoje.

Kad geriau suprasčiau, kodėl šios trys duomenų bazės šviečia, paprašiau kiekvienos savo atstovų nustatyti pagrindinius jų sėkmės požymius: Kelly Stirman, „MongoDB“ produktų direktorė; Patrickas McFadinas, „DataStax“ vyriausiasis „Cassandra“ evangelistas; ir Justinas Kestelyn, „Cloudera“ ryšių su kūrėjais vyresnysis direktorius.

Tačiau pirmiausia turime suprasti, kodėl „NoSQL“ yra svarbus.

Pasaulis, sukurtas naudojant nestruktūruotus duomenis

Mes vis dažniau gyvename pasaulyje, kuriame duomenys gražiai netelpa į tvarkingas RDBVS eilutes ir stulpelius. Mobilioji, socialinė ir debesų kompiuterija sukėlė didžiulį duomenų srautą. Remiantis įvairiais skaičiavimais, 90 procentų pasaulio duomenų buvo sukurta per pastaruosius dvejus metus, o „Gartner“ 80 procentų visų įmonės duomenų susiejo kaip nestruktūruotus. Negana to, nestruktūrizuoti duomenys auga dvigubai greičiau nei struktūriniai duomenys.

Keičiantis pasauliui, duomenų valdymo reikalavimai viršija tradicinių reliacinių duomenų bazių taikymo sritį. Pirmosios organizacijos, pastebėjusios alternatyvių sprendimų poreikį, buvo žiniatinklio pradininkai, vyriausybinės agentūros ir įmonės, kurios specializuojasi informacinių paslaugų srityje.

Dabar visokio plauko įmonės siekia pasinaudoti alternatyvų, tokių kaip „NoSQL“ ir „Hadoop“, pranašumais: „NoSQL“ kuria operacines programas, kurios skatina jų verslą per įtraukimo sistemas, ir „Hadoop“ - sukuria programas, kurios retrospektyviai analizuoja jų duomenis ir padeda pateikti galingų įžvalgų. .

MongoDB: iš kūrėjų, kūrėjams

Tarp „NoSQL“ variantų, pažymi „MongoDB“ atstovas Stirmanas, „MongoDB“ siekė subalansuoto požiūrio, tinkančio įvairiausioms programoms. Nors funkcionalumas artimas tradicinės reliacinės duomenų bazės funkcijoms, „MongoDB“ leidžia vartotojams pasinaudoti debesų infrastruktūros teikiamais pranašumais dėl horizontalaus mastelio ir lengvai dirbti su įvairiais duomenų rinkiniais, naudojamais šiandien dėl savo lankstaus duomenų modelio.

„MongoDB“ dažnai yra pirmasis, kurį bandys „NoSQL“ duomenų bazių kūrėjai, nes jį taip lengva išmokti. Willas Shulmanas, „MongoLab“ („MongoDB-as-a-service“ paslaugų teikėjas) generalinis direktorius, sako taip:

Neproporcinga „MongoDB“ sėkmė daugiausia grindžiama naujovėmis kaip duomenų struktūros saugykla, leidžiančia mums lengviau ir išraiškingiau modeliuoti „svarbiausius dalykus“, esančius mūsų programose ...

Tų pačių pagrindinių duomenų modelio naudojimas mūsų kode ir duomenų bazėje yra pranašesnis metodas daugeliu naudojimo atvejų, nes tai labai supaprastina programų kūrimo užduotį ir pašalina sudėtingų susiejimo kodo sluoksnius, kurie kitu atveju reikalingi.

Pažymėtina, kad „MongoDB“, kaip ir kitos šiame sąraše esančios duomenų bazės, nėra „poniukas“. Įmonės, kurios mokosi „MongoDB“, „gali amortizuoti savo investicijas į„ MongoDB “įgyvendindamos daugelį daugybės projektų, todėl tai yra vienas iš trumpiausių standartų, kuriais remiasi tvarkydami duomenis, sąrašas“, - sakė man Stirmanas.

Žinoma, kaip ir bet kuri technologija, „MongoDB“ turi stipriąsias ir silpnąsias puses. „MongoDB“ skirtas OLTP darbo krūviams. Tai gali atlikti sudėtingas užklausas, tačiau tai nebūtinai geriausiai tinka ataskaitų stiliaus darbo krūviams. Arba, jei jums reikia sudėtingų operacijų, tai nebus geras pasirinkimas. Tačiau dėl „MongoDB“ paprastumo tai yra puiki vieta pradėti.

Kasandra: saugiai važiuokite masteliu

Yra bent dviejų rūšių duomenų bazių paprastumas: kūrimo paprastumas ir operatyvumas. Nors „MongoDB“ teisingai gauna kreditą už lengvą „betarpišką“ patirtį, „Cassandra“ uždirba visus įvertinimus už tai, kad jį lengva valdyti masto mastu.

Kaip man pasakė „DataStax“ narys „McFadin“, vartotojai linkę į „Cassandra“, tuo labiau, kad jie galvą vargo, nes sunku padaryti reliacines duomenų bazes greitesnes ir patikimesnes, ypač masto. Buvęs „Oracle“ DBA, McFadinas buvo pakiliai atradęs, kad „Cassandra“ „replikacija ir linijinis mastelio keitimas yra primityvūs“, o savybės buvo „pagrindinis dizaino tikslas nuo pat pradžių“.

RDBMS pasaulyje duomenų bazės funkcijos, pvz., Mastelio keitimas ir replikavimas, yra vartotojui paliktos sudėtingos dalys. Tai puikiai veikė vakarykštėje įmonėje, kai mastas nebuvo didelis klausimas. Šiandien tai greitai tampa sutrikimas.

Kaip girdėjau iš McFadino ir kitų, Kasandra ypač šviečia išplėstinėse dislokacijose. „Cassandra“ yra paruoštas palaikymas keliems duomenų centrams. Kalbant apie pajėgumų padidinimą klasteriui: „Jūs paprasčiausiai paleidžiate naują mašiną ir pasakote Cassandra, kur yra kiti mazgai, - sakė McFadinas, - o ji rūpinasi visais kitais.“

Šis paprastas mastelio keitimas kartu su išskirtiniu rašymo našumu („Viskas, ką darote, yra pridedama prie žurnalo failo pabaigos“) ir nuspėjamas užklausos našumas, prideda didelio našumo darbinį arkliuką Kasandroje.

Vienas „NoSQL“ tikėjimo straipsnis, kurį jau seniai turiu, yra tai, kad „Cassandra“ gali būti galinga, tačiau norint pradėti, reikia daktaro laipsnio. Ne taip, McFadinas reikalavo:

Replikacijos, skaitymo ir rašymo keliai yra tikslingai paprasti. Per kelias valandas galite sužinoti pagrindinius Kasandros vidinius elementus. Tai gali atnešti daug pasitikėjimo, kai diegiate naują technologiją, nes yra mažiau „juodosios dėžės“ detalių, kurios pateikia sudėtingus gedimo režimus.

Tai reiškia, kad priėmimo į efektyvų „Cassandra“ kūrimą kaina yra suprantamas duomenų modelis ir kaip jis veiks su jūsų programa. Atsižvelgiant į „Cassandra“ CQL užklausų kalbos (kuri turėtų būti „tiksliai panaši į SQL, išskyrus atvejus, kai ji nėra“) žinomumą, McFadinas teigė, kad tai nėra kieta mokymosi kreivė.

Dar svarbiau, jis man pasakė: „Kasandra apdovanoja jus vienu dalyku, kurio norite iš duomenų bazės: jokios dramos. Štai kodėl vartotojai mėgsta naudoti „Cassandra“. “

HBase: „Bosom“ draugai su Hadoopu

„HBase“, kaip ir „Cassandra“, orientuota į stulpelius į raktų vertės saugyklą, daugeliu atvejų naudoja daug dėl savo „Hadoop“ kilmės. Iš tikrųjų, kaip teigė „Cloudera“ žurnalistas Kestelyn, „HBase“ suteikia įrašais pagrįstą saugojimo sluoksnį, kuris leidžia greitai, atsitiktinai skaityti ir rašyti į duomenis, papildant Hadoop, pabrėžiant didelį pralaidumą mažo delsos įvesties / išvesties sąskaita “.

Kestelyn tęsia:

Pakeitimai efektyviai kataloguojami atmintyje, kad būtų pasiekta maksimali prieiga, kol duomenys išliks HDFS. Šis dizainas suteikia galimybę „Hadoop“ pagrindu sukurtam EDH [įmonės duomenų centrui] teikti atsitiktinius skaitymus ir rašymą vartotojams ir programoms realiuoju laiku, tačiau vis tiek turi HDFS atsparumą gedimams ir patvarumą.

Bendradarbiavimas su „Hadoop“ nėra vienintelė priežastis, kodėl „HBase“ nuolat auga duomenų bazių populiarumo gretose, nors to gali pakakti. Panašiai kaip „Cassandra“, „HBase“ šaknys, kaip „Google Bigtable“ atvirojo kodo diegimas, verčiasi į duomenų bazę, kurią labai galima keisti.

„HBase“ gali naudoti bet kokio serverių skaičiaus saugojimo, atminties ir procesoriaus išteklius, taip pat turi išplėtimo funkcijas, pvz., Automatinį dalijimą, todėl „HBase“ gali neribotai mastelį keisti, nes apkrovos ir našumo poreikiai didėja paprasčiausiai pridedant serverio mazgų. „HBase“ buvo sukurtas nuo pat pradžių, kad užtikrintų optimalų našumą, kai nuoseklumas yra kritinis.

Tačiau mastas nėra tik naudingumas. Kaip pažymėjo Kestelyn, „Dėka glaudaus integracijos su likusia Hadoop ekosistema, vartotojams ir programoms duomenys lengvai prieinami naudojant SQL užklausas (naudojant„ Cloudera Impala “,„ Apache Phoenix “arba„ Apache Hive “) arba net briaunotą laisvo teksto paiešką (naudojant „Cloudera Search“. “ Taigi „HBase“ suteikia kūrėjams galimybę panaudoti esamą patirtį naudojant SQL, kuriant modernesnę, paskirstytą duomenų bazę.

Kiekviena duomenų bazė turi savo stipriąsias puses ir trūkumus, tačiau kiekviena iš trijų čia aprašytų duomenų užpildė didelę skylę didžiųjų duomenų srityje. Nors gali būti, kad atsiras nauja duomenų bazė, kuri pretenduos į vietą „NoSQL“ trejetuke („DynamoDB“), realybė yra ta, kad kūrėjai ir įmonės, kurioms jie teikia paslaugas, jau standartizuoja keletą stiprių galimybių: „MongoDB“, „Cassandra“ ir „HBase“.

Šiuo metu „Adobe“ mobiliojo ryšio viceprezidentas Mattas Asay anksčiau buvo „MongoDB, Inc.“ bendruomenės viceprezidentas. Jis yra „Open Source Initiative“ (OSI) valdybos narys emeritas ir įgijo teisės daktaro laipsnį Stanforde, kur daugiausia dėmesio skyrė atvirojo kodo ir kitiems. intelektinės nuosavybės licencijavimo klausimais, ir jo magistro laipsnis iš Kento universiteto Kenterberyje ir bakalauras iš Brighamo Youngo universiteto. Asay buvo vienas pirmųjų tinklaraštininkų.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected].

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