DynamoDB on Amazonin kehittämä täysin hal­lin­noi­tu, pal­ve­li­me­ton NoSQL-tie­to­kan­ta. Sen saumaton skaa­lau­tu­vuus, mil­li­se­kun­nin vasteajat, mi­ni­maa­li­nen yl­lä­pi­to­työ ja helppo AWS-in­tegraa­tio ovat sen tär­keim­piä etuja. Käyt­tö­ta­pauk­sia ovat esi­mer­kik­si oh­jel­mis­to­ke­hi­tys, pe­lia­lus­to­jen skaalaus ja re­aa­liai­kai­nen vi­deo­strii­maus.

Mikä on DynamoDB?

Amazon DynamoDB on pal­ve­li­met­to­man NoSQL-tie­to­kan­ta­pal­ve­lu ny­ky­ai­kai­sil­le so­vel­luk­sil­le kai­ken­ko­koi­sil­le, ja sitä on tarjonnut AWS (Amazon Web Services) vuodesta 2012 lähtien. Toisin kuin monet kil­pai­li­jat, DynamoDB on täysin hal­lin­noi­tu ratkaisu. Sen ansiosta päi­vi­tyk­siä, uu­dis­tuk­sia tai skaa­laus­ta ei tarvitse hoitaa itse. Tie­to­kan­nan hal­lin­ta­jär­jes­tel­mä tarjoaa myös laajan va­li­koi­man tur­val­li­suuso­mi­nai­suuk­sia ja vaa­ti­mus­ten­mu­kai­suuss­tan­dar­de­ja. Lisäksi DynamoDB in­tegroi­tuu sau­mat­to­mas­ti muihin AWS-pal­ve­lui­hin, kuten Lambdaan tai Amazon Open­Search Serviceen.

DynamoDB:n rakenne

Tie­to­kan­nan rakenne on selkeästi hie­rark­ki­nen, ja taulukot ovat sen ylimpänä tasona. Toisin kuin re­laa­tio­tie­to­kan­nois­sa, tau­lu­koi­den välillä ei ole tiukkoja suhteita. Amazon DynamoDB tallentaa tiedot osioihin, jotka repli­koi­daan au­to­maat­ti­ses­ti. Jokainen osio koostuu kolmesta solmusta, joista jokainen sisältää kopion tiedoista. Tämä mah­dol­lis­taa helpon skaa­lau­tu­vuu­den ja tarjoaa re­dun­dans­sin solmun vi­kaan­tues­sa. Ke­hit­tä­jät tal­len­ta­vat tietueet att­ri­buut­tei­na ja mää­rit­tä­vät niille yk­si­löl­li­sen en­si­si­jai­sen avaimen. Tie­to­kan­ta tukee sekä avain-arvo-tie­to­mal­le­ja että do­ku­ment­ti­poh­jai­sia malleja.

Tau­luk­ko­luo­kat AWS DynamoDB:ssä

Tau­luk­ko­luok­kien avulla DynamoDB-tau­lu­koi­den suo­ri­tus­ky­kyä ja kus­tan­nus­ra­ken­net­ta voidaan optimoida. Käyttäjät voivat valita kahden luokan välillä ja vaihtaa niiden välillä kahdesti 30 päivän aikana ilman käyt­tö­kat­kok­sia, jotta kus­tan­nuk­set voidaan mukauttaa käyt­tö­ta­poi­hin.

  • DynamoDB Standard on suun­ni­tel­tu ole­tusar­voi­sek­si tau­luk­ko­luo­kak­si korkean suo­ri­tus­ky­vyn työ­kuor­mil­le ja tau­lu­koil­le, joiden työ­kuor­mi­tus on ar­vaa­ma­ton. Vertailun vuoksi stan­dar­di­tau­lu­koil­le on ominaista al­hai­sem­mat lukemisen ja kir­joit­ta­mi­sen kus­tan­nuk­set.
  • DynamoDB Standard Infrequent Access on optimoitu tau­lu­koil­le, joissa tal­len­nus­ti­la on suurin kus­tan­nus­te­ki­jä. IA-va­kio­tau­lu­kot tarjoavat al­hai­sem­mat tal­len­nus­kus­tan­nuk­set. Luokka on myös ihan­teel­li­nen tau­lu­koil­le, joiden tietoja käytetään harvoin.

Mitä omi­nai­suuk­sia DynamoDB tarjoaa?

DynamoDB tarjoaa monia te­hok­kai­ta omi­nai­suuk­sia, jotka mah­dol­lis­ta­vat skaa­lau­tu­vat, erittäin käy­tet­tä­vis­sä olevat ja reagoivat so­vel­luk­set. Seuraava yleis­kat­saus esittelee tär­keim­mät omi­nai­suu­det:

  • Avain-arvo- ja do­ku­ment­ti­tie­to­mal­lit: Tie­to­kan­ta sisältää joustavan skeeman, joka mah­dol­lis­taa monien eri att­ri­buut­tien mää­rit­tä­mi­sen yk­sit­täi­sil­le kohteille.
  • ACID-tran­sak­tiot: NoSQL-tie­to­kan­ta tarjoaa tran­sak­tioil­le ato­mi­suu­den, kon­sis­tens­sin, eris­ty­nei­syy­den ja kes­tä­vyy­den (tunnetaan nimellä ACID) mo­nen­lai­siin so­vel­luk­siin. Tämä mah­dol­lis­taa DynamoDB:n skaa­lau­tu­vuu­den ja suo­ri­tus­ky­vyn laa­jen­ta­mi­sen kattamaan laajemman va­li­koi­man lii­ke­toi­min­nal­le kriit­ti­siä pro­ses­se­ja.
  • Globaalit taulukot ak­tii­vi­sen-ak­tii­vi­sen repli­koin­nin kanssa: DynamoDB:n globaalit taulukot ovat mo­niak­tii­vi­sia, joten käyttäjät voivat kir­joit­taa ja lukea mistä tahansa repli­kas­ta. Ka­pa­si­teet­ti säätyy au­to­maat­ti­ses­ti alu­eel­lis­ten työ­mää­rien mukaan.
  • DynamoDB Streams: Tämä omi­nai­suus tallentaa muu­tos­tie­dot. Kun tau­luk­koon luodaan, päi­vi­te­tään tai pois­te­taan kohde, DynamoDB Streams tallentaa ta­pah­tu­man ja säilyttää sen 24 tuntia.
  • Tois­si­jai­set indeksit: DynamoDB sallii sekä pai­kal­li­set että globaalit tois­si­jai­set indeksit, jotta kyselyt voidaan suorittaa vaih­toeh­toi­sil­la avaimilla. Ne voidaan va­lin­nai­ses­ti toteuttaa harvoina in­dek­sei­nä, jotta vain tietojen osajoukot in­dek­soi­daan.
  • Au­to­maat­ti­nen osiointi: Tiedot jaetaan au­to­maat­ti­ses­ti useisiin osioihin ja skaa­la­taan tarpeen mukaan.
  • Tur­val­li­suuso­mi­nai­suu­det: Tie­to­kan­ta tarjoaa laajat omi­nai­suu­det tietojen tur­val­li­suu­den var­mis­ta­mi­sek­si. Näitä ovat tarkat käyt­tö­oi­keuk­sien hallinta, salaus levossa, pis­te­koh­tai­nen palautus, ti­laus­pe­rus­tei­set var­muus­ko­piot ja yk­si­tyi­nen verk­ko­yh­teys.
  • Ka­pa­si­teet­ti­mal­lit: Käyttäjät voivat valita ti­laus­poh­jai­sen ka­pa­si­teet­ti­ti­lan ja varatun ka­pa­si­teet­ti­ti­lan välillä.
  • DynamoDB Acce­le­ra­tor (DAX): Tämä on va­lin­nai­nen palvelu, joka parantaa vä­li­muis­tia ja nostaa suo­ri­tus­ky­kyä jopa kym­men­ker­tai­sek­si.

Amazon DynamoDB:n edut ja haitat

Amazonin NoSQL-palvelu DynamoDB tekee vai­ku­tuk­sen pää­asias­sa seu­raa­vil­la omi­nai­suuk­sil­la:

  • Au­to­maat­ti­nen skaalaus: AWS DynamoDB säätää ka­pa­si­teet­tia ja osiointia dy­naa­mi­ses­ti läpimenon mukaan, mikä mah­dol­lis­taa ra­jat­to­man vaa­ka­suun­tai­sen kasvun.
  • Pal­ve­li­me­ton ark­ki­teh­tuu­ri: Tie­to­kan­nan hal­lin­ta­jär­jes­tel­mä on täysin hal­lin­noi­tu. Tämän ansiosta käyttäjät voivat keskittyä täysin so­vel­lus­ke­hi­tyk­seen sen sijaan, että heidän pitäisi keskittyä taustalla olevaan infra­struk­tuu­riin.
  • Korkea käy­tet­tä­vyys: Mo­nia­luei­set tie­to­kan­nat ja au­to­maat­ti­nen repli­koin­ti takaavat jopa 99,999 %:n käy­tet­tä­vyy­den.
  • Pieni viive: NoSQL-tie­to­kan­ta tarjoaa lukemisen ja kir­joit­ta­mi­sen ole­tusar­voi­ses­ti yhden mil­li­se­kun­nin viiveellä. DynamoDB Acce­le­ra­to­rin avulla vas­te­ai­ko­ja voidaan tar­vit­taes­sa lyhentää jopa mik­ro­se­kun­nin luokkaan.
  • Yk­sin­ker­tai­nen AWS-in­tegraa­tio: AWS-pal­ve­lui­den, kuten CloudWatc­hin tai Kinesisin, saumaton in­tegraa­tio laajentaa DynamoDB:n toi­min­nal­li­suut­ta ja mah­dol­lis­taa li­sä­tie­to­jen ana­ly­soin­nin.

Vaikka edut ovat selvästi suuremmat ja DynamoDB on eh­dot­to­mas­ti yksi parhaista SQL-vaih­toeh­dois­ta, alustalla on myös joitakin heik­kouk­sia. Toisaalta tie­to­kan­ta tarjoaa vain ra­joi­tet­tu­ja ky­se­ly­vaih­toeh­to­ja, jotka ovat vähemmän kattavia kuin monet kil­pai­le­vat tuotteet. Toisaalta tiivis in­tegroin­ti AWS-pal­ve­lui­hin vai­keut­taa siir­ty­mis­tä muihin alus­toi­hin. On-demand-malleissa on myös riski, että kysynnän piikit voivat johtaa ar­vaa­mat­to­man kor­kei­siin maksuihin.

Mihin so­vel­lusa­luei­siin DynamoDB sopii?

DynamoDB on suun­ni­tel­tu eri­tyi­ses­ti työ­kuor­mil­le, joissa on kä­si­tel­tä­vä ja skaa­lat­ta­va valtavia määriä dataa erittäin pienellä viiveellä ja korkealla käy­tet­tä­vyy­del­lä. Tyy­pil­li­siä käyt­tö­ta­pauk­sia ovat:

  • Pal­ve­li­met­to­mat verk­ko­so­vel­luk­set ja mo­bii­li­lait­tei­den taus­ta­pal­ve­lut, joissa ti­li­tie­dot, istunnot ja asetukset haetaan mi­ni­maa­li­sel­la viiveellä
  • Pe­lia­lus­tat, joissa sadat tuhannet tai miljoonat käyttäjät käyttävät pe­li­pal­ve­li­mia sa­ma­nai­kai­ses­ti
  • Sisällön suo­ra­tois­to glo­baa­lil­le yleisölle, jossa liikenne on epä­ta­sais­ta tai ruuh­kau­tuu
  • Pankit ja ra­hoi­tus­pal­ve­lu­yri­tyk­set, joiden on kä­si­tel­tä­vä useita ta­pah­tu­mia sa­ma­nai­kai­ses­ti ja re­aa­lia­jas­sa, samalla kun niiden on var­mis­tet­ta­va ra­hoi­tus­ta­pah­tu­mien oikea-aikaisuus ja tur­val­li­suus
  • IoT-so­vel­luk­set (IoT = esineiden internet), jotka kä­sit­te­le­vät ja tal­len­ta­vat an­tu­ri­tie­to­ja suuressa mit­ta­kaa­vas­sa

DynamoDB:n tär­keim­mät vaih­toeh­dot

DynamoDB:n lisäksi on olemassa muita tie­to­kan­ta­jär­jes­tel­miä, jotka voivat toimia vaih­toeh­toi­na riippuen vaa­ti­muk­sis­ta, tie­to­mal­lis­ta, skaa­lau­tu­vuu­des­ta ja infra­struk­tuu­ris­ta. Näitä ovat pää­asias­sa:

  • MongoDB: Suuri jous­ta­vuus ja rajaton skaa­lau­tu­vuus
  • MySQL: Suh­teel­li­nen jär­jes­tel­mä, jonka käy­tet­tä­vyys on huip­pu­luok­kaa
  • MariaDB: Avoimen läh­de­koo­din vaih­toeh­to DynamoDB:lle
  • PostgreSQL: Suh­teel­li­nen tie­to­kan­ta­rat­kai­su, joka tukee ei-suh­teel­li­sia tie­to­tyyp­pe­jä
  • Firebase by Google: Erin­omai­nen vaih­toeh­to eri­tyi­ses­ti mobiili- ja verk­ko­so­vel­luk­siin
  • Apache Cassandra: Erityisen sopiva suurille tie­to­mää­ril­le

Yk­sit­täis­ten DynamoDB-vaih­toeh­to­jen tarjoamat edut kä­si­tel­lään yk­si­tyis­koh­tai­ses­ti lin­ki­te­tys­sä oppaassa.

Siirry pää­va­lik­koon