DynamoDB on Amazoni poolt arendatud täie­li­kult hallatav, serverita NoSQL-andmebaas. Selle peamised eelised on sujuv ska­lee­ri­mine, mil­li­se­kun­di­line rea­gee­ri­mis­aeg, mi­ni­maalne töömaht ja lihtne AWS-in­teg­rat­sioon. Ka­su­tus­või­ma­lu­sed ulatuvad tark­va­raa­ren­du­sest män­gu­plat­vormide ska­lee­ri­miseni ja reaalajas vi­deost­rii­mi­miseni.

Mis on DynamoDB?

Amazon DynamoDB on serverita NoSQL and­me­baasi­tee­nus igasuguse suurusega kaas­aeg­se­tele ra­ken­dus­tele, mida AWS (Amazon Web Services) pakub alates 2012. aastast. Erinevalt paljudest kon­ku­ren­ti­dest on DynamoDB täie­li­kult hallatav lahendus. Seetõttu pole vaja tegeleda selliste üles­an­ne­tega nagu uuen­da­mine, värs­ken­da­mine või ska­lee­ri­mine. And­me­ba­asi hal­dus­süs­teem pakub ka laia valikut tur­va­oma­dusi ja vas­ta­vus­stan­dardeid. Lisaks in­teg­ree­rub DynamoDB sujuvalt teiste AWS-tee­nus­tega, nagu Lambda või Amazon Open­Se­arch Service.

DynamoDB struktuur

And­me­ba­asi struktuur on selge hie­rar­hi­line, kus tabelid on kõrgeimad üksused, kuid erinevalt re­lat­sioo­ni­lis­test and­me­baasi­dest ei ole nende vahel rangeid seoseid. Amazon DynamoDB salvestab andmed par­tit­sioo­ni­desse, mis rep­li­kee­ri­takse au­to­maat­selt. Iga par­tit­sioon koosneb kolmest sõlmest, millest igaüks sisaldab andmete koopiat, mis võimaldab lihtsat ska­lee­ri­mist ja tagab re­dundant­suse sõlme rikke korral. Arendajad sal­ves­ta­vad kirjed at­ri­buu­ti­dena ja määravad neile unikaalse pri­maar­võtme. Andmebaas toetab nii võtme-väärtuse and­me­mu­de­leid kui ka do­ku­men­di­põ­hi­seid mudeleid.

Ta­be­li­klas­sid AWS DynamoDB-s

Ta­be­li­klas­side ka­su­ta­mi­sega on võimalik op­ti­mee­rida DynamoDB tabelite jõudlust ja ku­lu­st­ruk­tuuri. Kasutajad saavad valida kahe klassi vahel ja vahetada neid 30 päeva jooksul kaks korda ilma kat­kes­tus­teta, et kohandada kulud ka­su­tus­har­ju­mus­tega.

  • DynamoDB Standard on loodud kui vaikimisi ta­be­li­klass kõrge jõud­lu­sega töö­koor­muste ja et­te­ar­va­ma­tute töö­koor­mus­tega tabelite jaoks. Võrd­lu­seks, stan­dard­ta­belid ise­loo­mus­ta­vad madalamad kulud lugemis- ja kir­ju­ta­misope­rat­sioo­nide jaoks.
  • DynamoDB Standard Infrequent Access on op­ti­mee­ri­tud tabelite jaoks, kus peamine kulutegur on sal­ves­tus­ruum. IA stan­dard­ta­belid pakuvad ma­da­la­maid sal­ves­tus­ku­lusid. Klass sobib ideaal­selt ka ta­be­li­tele, millele pää­se­takse harva ligi.

Milliseid funkt­sioone pakub DynamoDB?

DynamoDB pakub mit­me­su­gu­seid võimsaid funkt­sioone, mis või­mal­da­vad luua ska­lee­ri­ta­vaid, kõrge kät­te­saa­da­vu­sega ja kiireid rakendusi. Järgnev ülevaade võtab kokku peamised funkt­sioo­nid:

  • Võtme-väärtuse ja dokumendi and­me­mu­delid: And­me­baasil on paindlik skeem, mis võimaldab ük­si­ku­tele ele­men­ti­dele määrata palju erinevaid atribuute.
  • ACID-tehingud: NoSQL-andmebaas pakub te­hin­gu­tele ato­mi­li­sust, jär­je­pi­de­vust, iso­lee­ri­tust ja püsivust (tuntud kui ACID) laiale ra­ken­duste valikule. See võimaldab laiendada DynamoDB ska­lee­ri­ta­vust ja jõudlust laiemale valikule äri jaoks olu­lis­tele prot­ses­si­dele.
  • Glo­baal­sed tabelid aktiivse-aktiivse rep­li­kat­sioo­niga: DynamoDB glo­baal­sed tabelid on mit­me­ak­tiiv­sed, või­mal­da­des ka­su­ta­ja­tel kirjutada ja lugeda mis tahes replikast. Mahutavus ko­han­da­takse au­to­maat­selt piir­kond­liku töö­koor­mu­sega.
  • DynamoDB Streams: see funkt­sioon salvestab muutunud andmed. Kui tabelis luuakse, uuen­da­takse või kus­tu­ta­takse element, salvestab DynamoDB Streams sündmuse ja säilitab seda 24 tundi.
  • Se­kun­daar­sed indeksid: DynamoDB võimaldab nii kohalikke kui ka glo­baal­seid se­kun­daar­seid indekseid, et või­mal­dada päringuid al­ter­na­tiiv­sete võtmete abil. Va­li­ku­li­selt saab neid rakendada hõredate in­deksi­tena, et in­deksee­rida spet­siaal­selt ainult andmete alam­ko­gu­meid.
  • Au­to­maatne par­tit­sio­nee­ri­mine: andmed jao­ta­takse au­to­maat­selt mitme par­tit­siooni vahel ja ska­lee­ri­takse vastavalt va­ja­du­sele.
  • Tur­va­funkt­sioo­nid: andmebaas pakub laiaula­tus­likke funkt­sioone teie andmete tur­va­li­suse ta­ga­miseks. Nende hulka kuuluvad gra­nu­laar­sed juur­de­pää­su­kont­rol­lid, sal­ves­ta­tud andmete krüp­tee­ri­mine, ajalise taas­ta­mise funkt­sioon, tel­li­ta­vad va­ru­koo­piad ja pri­vaat­võrgu ühenduvus.
  • Ma­hu­mu­delid: ka­su­ta­ja­tel on võimalus valida tel­li­mu­sel põhineva mahu režiimi ja eelnevalt määratud mahu režiimi vahel.
  • DynamoDB Acce­le­ra­tor (DAX): see on va­li­ku­line teenus parema vahemällu sal­ves­ta­mise jaoks, mis suurendab jõudlust kuni küm­ne­kord­selt.

Amazon DynamoDB eelised ja puudused

Amazoni NoSQL-teenus DynamoDB muljetab peamiselt järgmiste oma­dus­tega:

  • Au­to­maatne ska­lee­ri­mine: AWS DynamoDB kohandab dü­naa­mi­li­selt võimsust ja par­tit­sio­nee­ri­mist lä­bi­las­ke­võime järgi, või­mal­da­des pii­ra­ma­tut ho­ri­son­taal­set kasvu.
  • Serverita ar­hi­tek­tuur: and­me­ba­asi haldamise süsteem on täie­li­kult hallatav. See võimaldab ka­su­ta­ja­tel kes­ken­duda täie­li­kult ra­ken­duste aren­da­misele, selle asemel et pidada silmas aluseks olevat inf­ra­struk­tuuri.
  • Kõrge kät­te­saa­da­vus: mitme piirkonna and­me­baasid ja au­to­maatne rep­li­kat­sioon tagavad kuni 99,999% kät­te­saa­da­vuse.
  • Madal latentsus: NoSQL-andmebaas pakub vaikimisi lugemis- ja kir­ju­tus­juur­de­pääsu ühe­ko­ha­lise mil­li­se­kun­di­lise la­tent­su­sega. DynamoDB Acce­le­ra­tori abil on vastuse aega vajadusel võimalik vähendada isegi mik­ro­se­kundini.
  • Lihtne AWS-i in­teg­rat­sioon: AWS-i teenuste, nagu CloudWa­tch või Kinesis, sujuv in­teg­rat­sioon laiendab DynamoDB funkt­sio­naal­sust ja võimaldab täien­da­vaid and­meana­lüüse.

Kuigi eelised kaaluvad selgelt üles ja DynamoDB on kindlasti üks parimaid SQL-al­ter­na­tiive, on plat­vor­mil ka mõned puudused. Ühelt poolt pakub andmebaas ainult piiratud pä­rin­gu­või­ma­lusi, mis on vähem kõi­ke­hõl­ma­vad kui paljudel kon­ku­ree­ri­va­tel pak­ku­mis­tel. Teiselt poolt muudab tihe in­teg­rat­sioon AWS-tee­nus­tega raskemaks ülemineku teistele plat­vormi­dele. Nõudlusel põ­hi­ne­vate mudelite puhul on ka oht, et nõudluse tipp­het­ked võivad kaasa tuua oo­ta­ma­tult kõrged tasud.

Mil­lis­tele ra­ken­dus­ala­dele sobib DynamoDB?

DynamoDB on spet­siaal­selt loodud töö­koor­muste jaoks, kus on vaja töödelda ja ska­lee­rida tohutuid and­me­hulki ning tagada väga madal latentsus ja kõrge kät­te­saa­da­vus. Tüü­pi­li­sed ka­su­tus­juh­tu­mid on järgmised:

  • Serverita vee­bi­ra­ken­dused ja mobiilsed ta­ga­põh­jad, kus kontod, ses­sioo­nid ja kon­fi­gu­rat­sioo­nid laa­di­takse mi­ni­maalse vii­vi­tu­sega
  • Män­gu­plat­vor­mid, kus sadad tuhanded või miljonid kasutajad pääsevad sa­ma­aeg­selt män­gu­ser­ve­ri­tele
  • Sisu voo­ge­das­tus üle­maa­ilm­sele publikule, kus liiklus on eba­üht­lane või tihe
  • Pangad ja fi­nants­tee­nuste et­te­võt­ted, mis peavad töötlema paljusid tehinguid sa­ma­aeg­selt ja reaalajas, samal ajal tagades fi­nants­te­hin­gute õi­ge­aeg­suse ja tur­va­li­suse
  • IoT-ra­ken­dused (IoT = asjade internet), mis töötlevad ja sal­ves­ta­vad andureid andmeid suures mahus

DynamoDB kõige olu­li­se­mad al­ter­na­tiivid

Lisaks DynamoDB-le on veel teisi and­me­baasi­süs­teeme, mis võivad sõltuvalt nõuetest, and­me­mu­de­list, ska­lee­ri­mi­sest ja inf­ra­struk­tuu­rist olla al­ter­na­tiiviks. Nende hulka kuuluvad peamiselt:

  • MongoDB: Suur paind­lik­kus ja piiramatu ska­lee­ri­ta­vus
  • MySQL: suhteline süsteem tipp­ta­se­mel kät­te­saa­da­vu­sega
  • MariaDB: avatud läh­te­koo­diga al­ter­na­tiiv DynamoDB-le
  • PostgreSQL: re­lat­sioo­ni­line and­me­baasi­la­hen­dus, mis toetab mit­te­su­he­te­põ­hi­seid and­me­tüüpe
  • Firebase by Google: suu­re­pä­rane al­ter­na­tiiv, eriti mobiili- ja vee­bi­ra­ken­duste jaoks
  • Apache Cassandra: eriti ideaalne suurte and­me­mah­tude jaoks

Ük­sik­as­ja­li­kult on DynamoDB al­ter­na­tiivide eelised kir­jel­da­tud lingitud juhendis.

Go to Main Menu