Grundvallaratriði gagnamódel - PostgreSQL vs Cassandra vs MongoDB

Forritahönnuðir eyða yfirleitt töluverðum tíma í að meta marga gagnagrunna til að finna þann gagnagrunn sem hentar best fyrir vinnuálag þeirra. Þessar þarfir fela í sér einfaldaða gagnamódel, viðskiptaábyrgðir, aflestur fyrir lestur / skrif, lárétt stigstærð og bilunarþol. Hefð er fyrir að þetta val byrjar á SQL gagnvart NoSQL gagnagrunnsflokkum vegna þess að hver flokkur býður upp á skýrt mengi afskipta. Mikil afköst með tilliti til lítillar leyndar og mikillar afköst eru venjulega meðhöndluð sem ósættanleg krafa og þess vegna er búist við því í hvaða gagnagrunni sem er valinn.

Þessi færsla miðar að því að hjálpa forriturum að skilja val á SQL vs. NoSQL í samhengi við gagnagerð þarfa forrits. Við notum einn SQL gagnagrunn, nefnilega PostgreSQL, og 2 NoSQL gagnagrunna, nefnilega Cassandra og MongoDB, sem dæmi til að útskýra grundvallaratriði gagnamódela svo sem að búa til töflur, setja inn gögn, framkvæma skannar og eyða gögnum. Í framhaldspósti munum við fjalla um háþróað efni eins og vísitölur, viðskipti, sameiningar, TTL-tilskipanir (time-to-live) og JSON byggð skjalagagnagerð.

Hvernig er NoSQL frábrugðið SQL í gagnamódel?

SQL gagnagrunir auka snerpu notkunar með ACID viðskiptatryggingum sem og með getu þeirra til að spyrjast fyrir um gögn með því að nota JOIN á ófyrirséða vegu ofan á fyrirliggjandi samhæfð gagnalíkön.

Með hliðsjón af einhliða / einum hnút arkitektúr og notkun herra-þræla afritunarlíkans til offramboðs vantar hefðbundna SQL gagnagrunna tvo mikilvæga möguleika - línulega skriflega sveigjanleika (þ.e.a.s. Þetta þýðir að gagnabindi sem tekin eru geta ekki farið yfir hámarks skrifafköst eins hnút. Að auki ætti að búast við einhverju tímabundnu tjóni á gögnum vegna bráðabirgða (á geymsluhúsnæði með sameiginlegu engu geymsluplássi) í ljósi þess að nýlegar skuldbindingar hefðu ekki komið fram við eftirmynd þræla. Núll uppfærsla í miðbæ er einnig mjög erfitt að ná í SQL gagnagrunninum.

NoSQL DB er venjulega dreift í náttúrunni þar sem gögnum verður skipt upp eða rifið yfir marga hnúta. Þeir krefjast óeðlilegrunar sem þýðir að sett inn gögn þarf einnig að afrita margfalt til að þjóna þeim fyrirspurnum sem þú hefur í huga. Yfirmarkmiðið er að ná miklum afköstum með því að fækka skýrum fjölda skerða sem aðgangur er að á lestrartímabilinu. Þess vegna er staðhæfingin að NoSQL krefst þess að þú gerðir fyrirspurnir þínar á meðan SQL krefst þess að þú gerðir gögn þín.

Áhersla NoSQL á að ná frammistöðu í dreifðum þyrping kemur fram sem megin rökstuðningur fyrir margvíslegum málamiðlunarmálum sem fela í sér tap á ACID-viðskiptum, JOINs og stöðugum alþjóðlegum aukavísitölum.

Almenna skynjunin er sú að jafnvel þó að NoSQL gagnagrunna veiti línulegan skriflegan sveigjanleika og mikið bilunarþol, þá gerir tap viðskiptaábyrgða þá óhæf til gagnrýnna verkefna.

Eftirfarandi tafla sýnir hvernig NoSQL gagnamódel er frábrugðið SQL.

SQL vs. NoSQL - Mismunur á lykilgagnamódelum

SQL & NoSQL: Af hverju þarftu hvort tveggja?

Flest raunveruleg forrit með grípandi notendaupplifun eins og Amazon.com, Netflix, Uber og Airbnb eru innbyrðis knúin af flókinni blöndu af mörgum vinnuálagi. T.d. rafræn viðskipti forrit eins og Amazon.com þarf að geyma lítið magn, mjög mikilvægt verkefni eins og notendur, vörur, pantanir, reikninga við hliðina á mikið magn, minna verkefni sem skiptir sköpum eins og dóma vöru, þjónustuver skilaboð, notendavirkni, ráðleggingar notenda. Auðvitað treysta þessi forrit á að minnsta kosti einn SQL gagnagrunn ásamt að minnsta kosti einum NoSQL gagnagrunni. Í margþættum og alþjóðlegum uppsetningum starfar NoSQL gagnagrunnurinn einnig sem geodreifður skyndiminni fyrir gögnin sem eru geymd í uppruna sannleikans, SQL gagnagrunnurinn keyrir á einu svæði.

Hvernig YugaByte DB setur saman SQL & NoSQL á sameiginlegum gagnagrunni?

YugaByte DB er byggð á einstökum samsetningu log-uppbyggðrar sameiningargeymsluhreyfils, sjálfvirkrar rissings, per-shard dreifðrar samhliða afritunar og dreifðra ACID-viðskipta (innblásin af Google Spanner) og er fyrsta opinn gagnagrunnur heims sem er bæði NoSQL (Cassandra & Redis) samhæft) og SQL (PostgreSQL samhæft) á sama tíma. Eins og sýnt er í töflunni hér að neðan, bætir YCQL, Cassandra samhæfðu API með YandraByte DB, hugmyndinni um staka og margra lykilsýruviðskipti og alþjóðlegar aukavísitölur við NoSQL API, þannig að hún hófst á tímum viðskipta NoSQL. Að auki bætir YSQL, PostgreSQL samhæfðu API með YugaByte DB, hugmyndunum um línulega skrifstærð og sjálfvirka bilunarþol við SQL API og býr þannig til heim dreifða SQL. Þar sem YugaByte DB er viðskipti í kjarna, er jafnvel hægt að nota NoSQL forritaskilin í samhengi við gagnrýnin verkefni.

YugaByte DB - SQL & NoSQL á einum gagnagrunni

Eins og áður hefur verið lýst í kynningu á YSQL: A PostgreSQL samhæfðu dreifðu SQL API fyrir YugaByte DB, val á SQL vs. NoSQL í YugaByte DB fer algjörlega eftir einkennum meirihluta vinnuálagsins.

  • Ef meirihluti vinnuálagsins er fjöl lyklaaðgerðir með JOINS, veldu þá YSQL með þeim skilningi að lyklunum þínum kunni að vera dreift yfir marga hnúta sem leiði til hærri leyndar og / eða minni afkasts en NoSQL.
  • Annars skaltu velja annað hvort tveggja NoSQL forritaskilanna með þeim skilningi að þú fáir betri afköst vegna fyrirspurna sem fyrst og fremst eru bornar fram úr einum hnút í einu. YugaByte DB getur þjónað sem sameinaður rekstrargagnagrunnur fyrir flókin forrit í raunverulegum heimi sem venjulega hefur margvíslegt vinnuálag til að stjórna á sama tíma.

Gagnamódelstofan í næsta kafla er byggð á PostgreSQL og Cassandra samhæfðu forritaskilum YugaByte DB öfugt við upprunalega gagnagrunna. Þessi nálgun varpar ljósi á einfaldleika samskipta við tvö mismunandi API (á tveimur mismunandi höfnum) í sama gagnagrunnsklasanum, öfugt við að nota fullkomlega óháða þyrpingu tveggja mismunandi gagnagrunna.

Í næstu köflum munum við fara í gegnum rannsóknarstofu um gagnamódel til að sýna fram á mörg af mismuninum og nokkrum algengum mismunandi gagnagrunna.

Gagnamódel Lab

Settu upp gagnagrunna

Í ljósi þess að áherslan er lögð á gagnamódel (og ekki flókin arkitektúr fyrir dreifingu) munum við setja upp gagnagrunna í Docker gámum á okkar staðbundnu vélum og síðan hafa samskipti við þá með því að nota viðkomandi skipanalínuskel.

YugaByte DB, PostgreSQL og Cassandra gagnagrunnur

mkdir ~ / Yugabyte && cd ~ / Yugabyte
wget https://downloads.yugabyte.com/yb-docker-ctl && chmod + x yb-docker-ctl
skipakví draga yugabytedb / yugabyte
./yb-docker-ctl búa til - mögulegt_postgres

MongoDB

tengikví hlaupa - nafn my-mongo -d mongo: nýjasta

Aðgangur með skipanalínuskel

Næst skulum tengjast gagnagrunnunum með skipanalínuskelin fyrir viðkomandi API.

PostgreSQL

psql er skipanalínuskel til að hafa samskipti við PostgreSQL. Til að auðvelda notkun er YugaByte DB skip með útgáfu af psql í ruslakörfu sinni.

skipuleggjari framkvæma -it yb-postgres-n1 / heim / yugabyte / postgres / bin / psql -p 5433 -U postgres

Cassandra

cqlsh er skipanalínuskel til að hafa samskipti við Cassandra og samhæfða gagnagrunna í gegnum CQL (Cassandra Query Language). Til að auðvelda notkun er YugaByte DB skip með útgáfu af cqlsh í ruslakörfu sinni.

Athugaðu að CQL er mjög innblásið af SQL með svipaða hugmynd um töflur, línur, dálka og vísitölur. Sem NoSQL tungumál bætir það þó við ákveðnum takmörkunum sem við flestum munum fara yfir á bloggsíðunni okkar.

skipuleggjari framkvæma -it yb-tserver-n1 / home / yugabyte / bin / cqlsh

MongoDB

mongo er skipanalínuskel til að eiga samskipti við MongoDB. Það er að finna í ruslakörfu MongoDB uppsetningar.

skipuleggjari framkvæma-mongo bash minn
geisladiskur
mongó

Búðu til töflu

Við getum núna haft samskipti við gagnagrunninn fyrir ýmsar aðgerðir með skipanalínuskelin. Byrjum á því að búa til töflu sem geymir upplýsingar um lög sem gefin eru út af listamönnum. Þessi lög eru stundum hluti af plötu. Aðrir valkvæðir eiginleikar lagsins eru gefnir út ár, verð, tegund og gagnrýnandi mat. Við þurfum að gera grein fyrir viðbótareiginleikum sem við gætum þurft í framtíðinni með „tags“ reit sem getur geymt hálfskipulögð gögn sem lykilgildapör.

PostgreSQL

Búðu til töflu tónlist (
    Listamaður VARCHAR (20) EKKI NÚLL,
    SongTitle VARCHAR (30) EKKI NULL,
    AlbumTitle VARCHAR (25),
    Ár INT,
    Verð FLOAT,
    Tegund VARCHAR (10),
    Gagnrýni FLOAT,
    Merki TEXT,
    PRIMARY KEY (Flytjandi, SongTitle)
);

Cassandra

Búa til töflu í Cassandra er mjög svipað og hjá PostgreSQL. Einn stór munur er skortur á heiðarleika takmörkunum (svo sem EKKI NULL) sem er á ábyrgð forritsins en ekki gagnagrunnurinn í NoSQL heiminum. Aðallykillinn samanstendur af skiptingartakkanum (Artist dálkinum í dæminu hér að neðan) og sett af þyrpingarsúlum (SongTitle dálkinum í dæminu hér að neðan). Skiptingartakkinn ákvarðar hvaða skipting / skjöldu sem á að setja röðina í og ​​þyrpingardálkarnir tilgreina hvernig gögnin í tiltekinni skurð skuli vera skipulögð.

Búðu til takkaborð myapp;
NOTA myapp;
Búðu til töflu tónlist (
    Flytjandi TEXT,
    SongTitle TEXT,
    AlbumTitle TEXT,
    Ár INT,
    Verð FLOAT,
    Tegund TEXT,
    Gagnrýni FLOAT,
    Merki TEXT,
    PRIMARY KEY (Flytjandi, SongTitle)
);

MongoDB

MongoDB skipuleggur gögn í gagnagrunnum (jafngildir Cassandra Keyspace) sem hafa söfn (sem jafngildir töflum) sem hafa skjöl (sem jafngildir röð í töflu). Sem „tímalaus“ gagnagrunnur er skilgreiningin á stefinu fyrirfram ekki nauðsynleg í MongoDB. Skipunin „nota gagnagrunn“ sem sýnd er hér að neðan gerir gagnagrunninn virkan í fyrsta skipti sem hann er kallaður ásamt samhengisbreytingu í nýstofnaðan gagnagrunn. Jafnvel söfn þurfa ekki að búa til afdráttarlaust heldur eru þau frekar búin til sjálfkrafa með því einfaldlega að setja fyrsta skjalið inn í nýtt safn. Athugaðu að sjálfgefinn gagnagrunnur MongoDB er prófun, svo að öll aðgerð á safnstigi er gerð án þess að tilgreina gagnagrunninn, verður gerð í þessu sjálfgefna samhengi.

nota myNewDatabase;

Fáðu upplýsingar um töflu

PostgreSQL

\ d Tónlist
Tafla „public.music“
    Súlan | Gerð | Söfnun | Nullable | Sjálfgefið
-------------- + ----------------------- + ----------- + ---------- + --------
 listamaður | stafur breytilegur (20) | | ekki núll |
 lag texti | stafur breytilegur (30) | | ekki núll |
 albúmstitill | eðli mismunandi (25) | | |
 ári | heiltala | | |
 verð | tvöföld nákvæmni | | |
 tegund | stafur breytilegur (10) | | |
 gagnrýna | tvöföld nákvæmni | | |
 merki | texti | | |
Vísitölur:
    „music_pkey“ PRIMARY KEY, btree (flytjandi, texti)

Cassandra

LÝSING TÖFLU TÓNLIST;
Búðu til töflu myapp.music (
    listamaður texti,
    texti textans,
    texti plötutitils,
    ári frv.
    verð fljóta,
    tegund texta,
    merkir texta,
    PRIMARY KEY (flytjandi, texti)
) MEÐ SKREYTINGUORDI (lagatitill ASC)
    OG default_time_to_live = 0
    OG viðskipti = {'virkt': 'ósatt'};

MongoDB

nota myNewDatabase;
sýningarsöfn;

Settu gögn inn í töflu

PostgreSQL

INSERT INTO tónlist
    (Flytjandi, SongTitle, AlbumTitle,
    Ár, verð, tegund, gagnrýni,
    Merki)
GILDIR (
    'Enginn sem þú þekkir', 'Hringdu í dag', 'Nokkuð frægt',
    2015, 2.14, 'Land', 7.8,
    '{"Composers": ["Smith", "Jones", "Davis"], "LengthInSeconds": 214}'
);
INSERT INTO tónlist
    (Flytjandi, SongTitle, AlbumTitle,
    Verð, tegund, gagnrýni)
GILDIR (
    'Enginn sem þú þekkir', 'Hundur bletturinn minn', 'Hey nú',
    1.98, 'Land', 8.4
);
INSERT INTO tónlist
    (Flytjandi, SongTitle, AlbumTitle,
    Verð, tegund)
GILDIR (
    'The Acme Band', 'Look Out, World', 'The Buck Start Here',
    0,99, 'Rokk'
);
INSERT INTO tónlist
    (Flytjandi, SongTitle, AlbumTitle,
    Verð, tegund,
    Merki)
GILDIR (
    'The Acme Band', 'Still in Love', 'The Buck Start Here',
    2,47, 'Rokk',
    '{"radioStationsPlaying": ["KHCR", "KBQX", "WTNR", "WJJH"], "tourDates": {"Seattle": "20150625", "Cleveland": "20150630"}, "rotation": Þungt} '
);

Cassandra

Yfirlýsingar Cassandra INSERT líta mjög út eins og PostgreSQL almennt. Hins vegar er einn stór munur á merkingarfræði. INSERT er í raun aukin aðgerð í Cassandra þar sem röðin er uppfærð með nýjustu gildum ef röðin er þegar til.

Sama og PostgreSQL INSERT yfirlýsingar hér að ofan.

MongoDB

Jafnvel þó að MongoDB sé einnig NoSQL gagnagrunnur svipaður Cassandra, þá hefur innsetningaraðgerð þess ekki sömu merkingartækni og Cassandra. MongoDB innskot () hefur enga möguleika á aukningu sem gerir það svipað PostgreSQL. Sjálfgefna hegðun innskots án _sérgreind mun leiða til þess að nýju skjali er bætt við safnið.

db.music.insert ({
flytjandi: "Enginn sem þú þekkir",
   songTitle: „Call Me Today“,
    albumTitle: "Nokkuð frægt",
    ár: 2015,
    verð: 2,14,
    tegund: „Land“,
    merki: {
Tónskáld: ["Smith", "Jones", "Davis"],
LengdInSekúndur: 214
}
   }
);
db.music.insert ({
    flytjandi: "Enginn sem þú þekkir",
    lagið Títill: „My Dog Spot“,
    albumTitle: „Hey núna“,
    verð: 1,98,
    tegund: „Land“,
    gagnrýniRating: 8.4
   }
);
db.music.insert ({
    flytjandi: "The Acme Band",
    lagið Title: "Look Out, World",
    albumTitle: "The Buck Start Here",
    verð: 0,99,
    tegund: "Rokk"
   }
);
db.music.insert ({
    flytjandi: "The Acme Band",
    lagið Títill: „Still In Love“,
    albumTitle: "The Buck Start Here",
    verð: 2,47,
    tegund: „Rokk“,
    merki: {
        radioStationsPlaying: ["KHCR", "KBQX", "WTNR", "WJJH"],
        tourDates: {
            Seattle: "20150625",
            Cleveland: "20150630"
        },
        snúningur: „Þung“
}
    }
);

Fyrirspurn töflu

Að öllum líkindum er mesti munurinn á SQL og NoSQL hvað varðar fyrirspurnir um reiknilíkönum á notkun FRÁ og HVAR ákvæðanna. SQL gerir kleift frá FROM ákvæði að innihalda margar töflur og HVAR ákvæðið er af handahófi flókið (þ.m.t. JOINs yfir töflur). Hins vegar hefur NoSQL tilhneigingu til að setja harða takmörkun á FROM ákvæðinu til að hafa aðeins eina töflu tilgreindan og WHERE ákvæðið til að hafa alltaf aðallykilinn tilgreindan. Þetta er vegna mikillar frammistöðu í NoSQL sem við ræddum um áðan sem miðar að því að draga úr víxlverkun og milliverkunum. Slík samskipti geta komið með mikil leynd á milli hnúta samskipta í svörunartíma fyrirspurnanna og þess vegna er best að forðast að öllu leyti. T.d. Cassandra krefst þess að fyrirspurnir séu takmarkaðar af rekstraraðilum (aðeins =, IN, <,>, =>, <= eru leyfðar) á skiptingartökkum nema þegar fyrirspurn er eftir efnisvísitölu (þar sem aðeins = rekstraraðili er leyfður).

PostgreSQL

Eftirfarandi eru 3 tegundir af fyrirspurnum sem hægt er að bera fram með SQL gagnagrunni.

  • Skila öllum lögum eftir listamann
  • Skila öllum lögum eftir listamann, samsvarandi fyrsta hluta titilsins
  • Skila öllum lögum eftir listamann, með tilteknu orði í titlinum en aðeins ef verðið er undir 1,00
VELJA * FRÁ tónlist
HVAR listamaður = 'Enginn sem þú þekkir';
VELJA * FRÁ tónlist
HVAR Flytjandi = 'Enginn sem þú þekkir' OG SongTitle LIKE 'Call%';
VELJA * FRÁ tónlist
HVAR listamaður = 'Enginn sem þú þekkir' OG Söngtexti LIKE '% Today%'
OG Verð> 1,00;

Cassandra

Af PostgreSQL fyrirspurnunum sem taldar eru upp hér að ofan er aðeins sú fyrsta sem virkar með Cassandra óbreytta þar sem LIKE rekstraraðili er ekki leyfður á þyrpingarsúlum eins og SongTitle. Aðeins = og IN rekstraraðilar eru leyfðir í þessu tilfelli.

VELJA * FRÁ tónlist
HVAR listamaður = 'Enginn sem þú þekkir';
VELJA * FRÁ tónlist
HVAR Flytjandi = 'Enginn sem þú þekkir' OG SongTitle IN ('Call Me Today', 'My Dog Spot')
OG Verð> 1,00;

MongoDB

Eins og sýnt er í dæmunum á undan er aðalaðferðin við fyrirspurn MongoDB aðferð db.collection.find (). Þessi aðferð er hæf með nafni safnsins (tónlist í dæminu hér að neðan) til að fá fyrirspurnir mjög afdráttarlaust svo fyrirspurnum um söfn er beinlínis óheimilt.

db.music.find ({
  flytjandi: "Enginn sem þú þekkir"
 }
);
db.music.find ({
  flytjandi: "Enginn sem þú þekkir",
  songTitle: / Call /
 }
);

Lestu allar línur frá töflu

Að lesa allar línur er einfaldlega sérstakt tilfelli af samheiti fyrirspurnarmynstursins sem við fylgjumst með áðan.

PostgreSQL

VELJA *
FRÁ tónlist;

Cassandra

Sama og PostgreSQL SELECT yfirlýsingin hér að ofan.

MongoDB

db.music.find ({});

Breyta gögnum í töflu

PostgreSQL

PostgreSQL veitir UPDATE yfirlýsinguna til að breyta gögnum. Það gerir ekki kleift að auka möguleika svo yfirlýsingin mistakast ef röðin er ekki til í gagnagrunninum.

UPDATE Tónlist
SET tegund = 'diskó'
HVAR listamaður = 'Acme hljómsveitin' OG SongTitle = 'Enn í ást';

Cassandra

Cassandra hefur einnig UPDATE yfirlýsingu svipað og PostgreSQL. UPDATE hefur einnig sömu merkingargreinar og INSERT yfirlýsinguna.

Sama og PostgreSQL UPDATE yfirlýsingin hér að ofan.

MongoDB

Aðgerð uppfærslu MongoDB () getur uppfært núverandi skjal að öllu leyti eða getur aðeins uppfært tiltekna reiti. Sjálfgefið er að það uppfærir aðeins eitt skjal þar sem slökkt er á merkingarfræði. Hægt er að kveikja á mörgum skjölum og uppfæra hegðun með því að setja viðbótarfána við aðgerðina. T.d. dæmið hér að neðan uppfærir tegund tiltekins listamanns yfir lög listamannsins.

db.music.update (
  {"artist": "The Acme Band"},
  {
    $ sett: {
      "tegund": "Disco"
    }
  },
  {"multi": satt, "upsert": true}
);

Eyða gögnum úr töflu

PostgreSQL

SLETTA FRÁ tónlist
HVAR listamaður = 'The Acme Band' OG SongTitle = 'Look Out, World';

Cassandra

Sama og PostgreSQL DELETE yfirlýsingin hér að ofan.

MongoDB

MongoDB hefur tvenns konar aðgerðir til að takast á við eyðingu skjala - deleteOne () / deleteMany () og fjarlægja (). Báðir eyða skjölum eða skjölum en hafa mismunandi niðurstöður.

db.music.deleteMany ({
        flytjandi: "The Acme Band"
    }
);

Fjarlægðu töflu

PostgreSQL

DROP TABLE Tónlist;

Cassandra

Sama og staðhæfingin PostgreSQL DROP TABLE hér að ofan;

MongoDB

db.music.drop ();

Yfirlit

SQL vs NoSQL umræðan hefur geisað í rúman áratug núna. Það eru 2 þættir þessarar umræðu: grunnarkitektúr gagnagrunnsins (einhliða, viðskiptalegs SQL vs. dreifð, ekki viðskiptalegs NoSQL) og gagnamódelaðferðin (reiknaðu gögnin þín í SQL samanborið við fyrirspurnir þínar í NoSQL).

Með dreifðum viðskiptabanka, svo sem YugaByte DB, er auðvelt að hvíla gagnagrunninn í gagnagrunni hluta umræðunnar. Þegar gagnabindi vaxa umfram það sem hægt er að skrifa í einn hnút, verður dreifður arkitektúr að fullu sem gerir línulega skriflega sveigjanleika með sjálfvirkri klippingu / endurjöfnun ómissandi. Að auki, eins og lýst er í þessari færslu frá Google Cloud, eru viðskiptabankar og stöðugir stöðugir arkitektar nú almennt viðurkenndir til að skila meiri verktaki og rekstri snerpu en arkitektar sem ekki eru aðgerðir, að lokum.

Að koma til umræðunnar um gagna líkan, það er sanngjarnt að segja að bæði SQL og NoSQL gagnamódelaðferðir eru nauðsynlegar fyrir flókin raunveruleg forrit. Líkan-við-gögn nálgun SQL gerir verktakunum kleift að koma til móts við breyttar kröfur í viðskiptum á auðveldari hátt með því að NoSQL fyrirspurn-nálgunin gerir kleift að sömu verktaki geti stjórnað miklu gagnamagni með litlum leynd og mikilli afköst. Þetta er einmitt ástæðan fyrir því að YugaByte DB útfærir bæði SQL og NoSQL API á sameiginlega kjarna í stað þess að stuðla að því að ein nálgunin sé stranglega betri en hin. Að auki, með því að tryggja vírsamhæfi við vinsæl gagnagrunatungumál, þar á meðal PostgreSQL og Cassandra, tryggir YugaByte DB að verktaki hafi ekki lært annað tungumál til að njóta góðs af dreifðum gagnkvæmum gagnagrunni.

Þessi færsla hjálpaði okkur að skilja hvernig grundvallaratriði gagnamódela eru mismunandi á milli PostgreSQL, Cassandra og MongoDB. Í næstu færslum í seríunni munum við kafa í háþróaðri hugbúnaðargerð fyrir gögn eins og vísitölur, viðskipti, JOINs, TTL tilskipanir og JSON skjöl.

Hvað er næst?

  • Berðu saman YugaByte DB við gagnagrunna eins og Amazon DynamoDB, Cassandra, MongoDB og Azure Cosmos DB.
  • Byrjaðu með YugaByte DB á macOS, Linux, Docker og Kubernetes.
  • Hafðu samband við okkur til að læra meira um leyfi, verðlagningu eða til að skipuleggja tæknilega yfirsýn.

Upphaflega birt á YugaByte gagnagrunni blogginu.