DynamoDB je popolnoma upra­vlja­na, brez­stre­žni­ška NoSQL baza podatkov, ki jo je razvil Amazon. Njene ključne prednosti so nemoteno ska­li­ra­nje, odzivni čas v mi­li­se­kun­dah, minimalni ope­ra­tiv­ni napor in enostavna in­te­gra­ci­ja z AWS. Primeri uporabe segajo od razvoja pro­gram­ske opreme do ska­li­ra­nja igralnih platform in pre­ta­ka­nja videov v realnem času.

Kaj je DynamoDB?

Amazon DynamoDB je brez­stre­žni­ška NoSQL po­dat­kov­na baza za sodobne apli­ka­ci­je vseh velikosti, ki jo od leta 2012 ponuja AWS (Amazon Web Services). Za razliko od mnogih kon­ku­ren­tov je DynamoDB popolnoma upra­vlja­na rešitev. Zato ni potrebe po opra­vlja­nju nalog, kot so nad­gra­dnje, po­so­do­bi­tve ali ska­li­ra­nje. Sistem za upra­vlja­nje po­dat­kov­nih baz ponuja tudi široko paleto var­no­stnih funkcij in stan­dar­dov skla­dno­sti. Poleg tega se DynamoDB brezhibno integrira z drugimi sto­ri­tva­mi AWS, kot sta Lambda ali Amazon Open­Se­arch Service.

Struktura DynamoDB

Struktura po­dat­kov­ne baze ima jasno hi­e­rar­hi­jo s tabelami kot naj­viš­ji­mi en­ti­te­ta­mi, brez strogih odnosov med njimi, za razliko od re­la­cij­skih po­dat­kov­nih baz. Amazon DynamoDB shranjuje podatke v par­ti­ci­jah, ki se samodejno re­pli­ci­ra­jo. Vsaka particija je se­sta­vlje­na iz treh vozlišč, od katerih vsako hrani kopijo podatkov, kar omogoča enostavno ska­li­ra­nje in za­go­ta­vlja re­dun­dan­ci­jo v primeru okvare vozlišča. Raz­vi­jal­ci shra­nju­je­jo zapise kot atribute in jim dodelijo edinstven primarni ključ. Po­dat­kov­na baza podpira tako po­dat­kov­ne modele ključ-vrednost kot tudi do­ku­men­tno usmerjene modele.

Razredi tabel v AWS DynamoDB

Z uporabo razredov tabel je mogoče op­ti­mi­zi­ra­ti zmo­glji­vost in strukturo stroškov tabel DynamoDB. Upo­rab­ni­ki lahko izbirajo med dvema razredoma in med njima v 30 dneh dvakrat pre­klo­pi­jo brez izpada, da stroške pri­la­go­di­jo vzorcem uporabe.

  • DynamoDB Standard je zasnovan kot privzeti razred tabel za visoko zmogljive delovne obre­me­ni­tve in tabele z ne­pred­vi­dlji­vi­mi delovnimi obre­me­ni­tva­mi. V pri­mer­ja­vi s tem so stan­dar­dne tabele značilne po nižjih stroških za operacije branja in pisanja.
  • DynamoDB Standard In­fre­quent Access je op­ti­mi­zi­ran za tabele, pri katerih je shra­nje­va­nje glavni stro­škov­ni dejavnik. Stan­dar­dne tabele IA ponujajo nižje stroške shra­nje­va­nja. Razred je idealen tudi za tabele s podatki, do katerih se redko dostopa.

Katere funkcije ponuja DynamoDB?

DynamoDB ponuja vrsto zmo­glji­vih funkcij, ki omogočajo ska­la­bil­ne, visoko raz­po­lo­žlji­ve in odzivne apli­ka­ci­je. V na­sle­dnjem pregledu so povzete ključne funkcije:

  • Modeli podatkov ključ-vrednost in dokument: Po­dat­kov­na baza ima pri­la­go­dlji­vo shemo, ki omogoča do­de­lje­va­nje številnih različnih atributov po­sa­me­znim elementom.
  • ACID tran­sak­ci­je: NoSQL baza podatkov za­go­ta­vlja tran­sak­ci­je z atom­sko­stjo, do­sle­dno­stjo, izolacijo in traj­no­stjo – znane kot ACID – za široko paleto aplikacij. To omogoča raz­ši­ri­tev ska­la­bil­no­sti in zmo­glji­vo­sti DynamoDB na širši nabor poslovno kritičnih procesov.
  • Globalne tabele z aktivno-aktivno re­pli­ka­ci­jo: Globalne tabele DynamoDB so ve­čak­tiv­ne, kar upo­rab­ni­kom omogoča pisanje in branje iz katere koli replike. Zmo­glji­vost se samodejno prilagaja re­gi­o­nal­nim delovnim obre­me­ni­tvam.
  • DynamoDB Streams: Ta funkcija zajema podatke o spre­mem­bah. Ko je v tabeli ustvarjen, po­so­do­bljen ali izbrisan element, DynamoDB Streams zabeleži dogodek in ga shrani za 24 ur.
  • Se­kun­dar­ni indeksi: DynamoDB omogoča lokalne in globalne se­kun­dar­ne indekse, da se omogočijo poizvedbe z uporabo al­ter­na­tiv­nih ključev. Po želji se lahko im­ple­men­ti­ra­jo kot redki indeksi, da se in­de­ksi­ra­jo samo pod­sku­pi­ne podatkov.
  • Samodejno raz­de­lje­va­nje: Podatki se samodejno raz­po­re­di­jo po več par­ti­ci­jah in po potrebi pri­la­go­di­jo.
  • Varnostne funkcije: baza podatkov ponuja obsežne funkcije za za­go­ta­vlja­nje varnosti vaših podatkov. Te vklju­ču­je­jo podrobno nad­zo­ro­va­nje dostopa, ši­fri­ra­nje v mirovanju, obnovitev v določenem trenutku, varnostne kopije na zahtevo in po­ve­zlji­vost zasebnega omrežja.
  • Modeli zmo­glji­vo­sti: Upo­rab­ni­ki lahko izbirajo med načinom zmo­glji­vo­sti na zahtevo in načinom za­go­to­vlje­ne zmo­glji­vo­sti.
  • DynamoDB Acce­le­ra­tor (DAX): To je izbirna storitev za iz­bolj­ša­no shra­nje­va­nje v pred­po­mnil­ni­ku, ki do desetkrat poveča zmo­glji­vost.

Prednosti in slabosti Amazon DynamoDB

Amazonova storitev NoSQL DynamoDB navdušuje predvsem z na­sle­dnjim:

  • Av­to­mat­sko pri­la­ga­ja­nje: AWS DynamoDB dinamično prilagaja zmo­glji­vost in par­ti­ci­o­ni­ra­nje, da se prilagodi pre­pu­stno­sti, kar omogoča neomejeno ho­ri­zon­tal­no rast.
  • Ar­hi­tek­tu­ra brez stre­žni­kov: Sistem za upra­vlja­nje po­dat­kov­nih baz je v celoti upravljan. To omogoča upo­rab­ni­kom, da se v celoti osre­do­to­či­jo na razvoj aplikacij, namesto da bi se morali osre­do­to­ča­ti na osnovno in­fra­struk­tu­ro.
  • Visoka raz­po­lo­žlji­vost: Ve­čre­gij­ske baze podatkov in av­to­mat­ska re­pli­ka­ci­ja za­go­ta­vlja­jo raz­po­lo­žlji­vost do 99,999 %.
  • Nizka za­ka­sni­tev: NoSQL baza podatkov omogoča branje in pisanje z za­ka­sni­tvi­jo v mi­li­se­kun­dah. Z DynamoDB Acce­le­ra­tor­jem se lahko odzivni čas po potrebi skrajša celo na mi­kro­se­kun­de.
  • Enostavna in­te­gra­ci­ja AWS: Brezhibna in­te­gra­ci­ja storitev AWS, kot sta Clo­u­d­Watch ali Kinesis, razširja funk­ci­o­nal­nost DynamoDB in omogoča dodatne analize podatkov.

Čeprav prednosti jasno pre­vla­du­je­jo in je DynamoDB de­fi­ni­tiv­no med naj­bolj­ši­mi al­ter­na­ti­va­mi SQL, ima platforma tudi nekaj slabosti. Po eni strani baza podatkov ponuja le omejene možnosti po­i­zve­do­va­nja, ki so manj obsežne kot pri mnogih kon­ku­renč­nih ponudbah. Po drugi strani pa tesna in­te­gra­ci­ja s sto­ri­tva­mi AWS otežuje migracijo na druge platforme. Pri modelih na zahtevo obstaja tudi tveganje, da lahko konice pov­pra­še­va­nja pov­zro­či­jo ne­pred­vi­dlji­vo visoke stroške.

Za katera področja uporabe je DynamoDB primeren?

DynamoDB je bil posebej zasnovan za delovne obre­me­ni­tve, pri katerih je treba obdelati in pri­la­go­di­ti ogromne količine podatkov ter za­go­to­vi­ti zelo nizko za­ka­sni­tev in visoko raz­po­lo­žlji­vost. Tipični primeri uporabe vklju­ču­je­jo:

  • Spletne apli­ka­ci­je brez strežnika in mobilni backendi, kjer se podatki o računih, sejah in kon­fi­gu­ra­ci­jah pri­do­bi­va­jo z minimalno za­ka­sni­tvi­jo
  • Igralne platforme, kjer na igralne strežnike hkrati dostopa več sto tisoč ali milijonov upo­rab­ni­kov
  • Prenos vsebin za globalno občinstvo z ne­e­na­ko­mer­nim ali izredno in­ten­ziv­nim prometom
  • Banke in finančne sto­ri­tve­ne družbe, ki morajo hkrati in v realnem času obdelati veliko tran­sak­cij, hkrati pa se soočajo z izzivom za­go­ta­vlja­nja pra­vo­ča­sno­sti in varnosti finančnih tran­sak­cij
  • Apli­ka­ci­je IoT (IoT = internet stvari), ki ob­de­lu­je­jo in shra­nju­je­jo podatke senzorjev v velikem obsegu

Naj­po­memb­nej­še al­ter­na­ti­ve za DynamoDB

Poleg DynamoDB obstajajo tudi drugi sistemi po­dat­kov­nih baz, ki lahko služijo kot al­ter­na­ti­va, odvisno od zahtev, po­dat­kov­ne­ga modela, ska­li­ra­nja in in­fra­struk­tu­re. Ti vklju­ču­je­jo predvsem:

  • MongoDB: Visoka pri­la­go­dlji­vost in neomejena ska­la­bil­nost
  • MySQL: Re­la­ci­o­nal­ni sistem z vrhunsko raz­po­lo­žlji­vo­stjo
  • MariaDB: Od­pr­to­ko­dna al­ter­na­ti­va DynamoDB
  • Po­stgre­SQL: re­la­cij­ska rešitev za po­dat­kov­ne baze s podporo za ne­re­la­cij­ske tipe podatkov
  • Firebase by Google: odlična al­ter­na­ti­va, zlasti za mobilne in spletne apli­ka­ci­je
  • Apache Cassandra: še posebej idealna za velike količine podatkov

Po­drob­no­sti o pred­no­stih po­sa­me­znih al­ter­na­tiv DynamoDB so navedene v povezanem vodniku.

Go to Main Menu