DynamoDB ir pilnībā pār­val­dī­ta, bez­ser­ve­ru NoSQL datu bāze, ko iz­strā­dā­ju­si Amazon. Tās galvenās priekš­ro­cī­bas ir vien­mē­rī­ga mē­ro­go­ja­mī­ba, mi­li­se­kun­des reakcijas laiks, minimālas eks­plua­tā­ci­jas izmaksas un viegla in­teg­rā­ci­ja AWS. Lie­to­ša­nas gadījumi ir dažādi – no prog­ram­ma­tū­ras izstrādes līdz spēļu platformu mē­ro­go­ša­nai un reāllaika video strau­mē­ša­nai.

Kas ir DynamoDB?

Amazon DynamoDB ir bez­ser­ve­ru NoSQL datu bāzes pa­kal­po­jums modernām lie­to­jum­prog­ram­mām jebkura mēroga, ko kopš 2012. gada nodrošina AWS (Amazon Web Services). Atšķirībā no daudziem kon­ku­ren­tiem DynamoDB ir pilnībā pār­val­dīts ri­si­nā­jums. Tā rezultātā nav ne­pie­cie­šams veikt tādas darbības kā uz­la­bo­ju­mi, at­jau­ni­nā­ju­mi vai mērogu pie­lā­go­ša­na. Datu bāzes pār­val­dī­bas sistēma piedāvā arī plašu drošības funkciju un at­bil­stī­bas standartu klāstu. Turklāt DynamoDB ne­vai­no­ja­mi in­teg­rē­jas ar citiem AWS pa­kal­po­ju­miem, piemēram, Lambda vai Amazon Open­Search Service.

DynamoDB struktūra

Datubāzes struktūra ir skaidri hie­rar­his­ka, kur galvenās vienības ir tabulas, starp kurām nav stingru saistību, atšķirībā no re­la­tī­va­jām datubāzēm. Amazon DynamoDB glabā datus no­da­lī­ju­mos, kas tiek au­to­mā­tis­ki replikēti. Katrs no­da­lī­jums sastāv no trim mezgliem, katrā no kuriem atrodas datu kopija, kas ļauj viegli mainīt mērogu un nodrošina re­dun­dan­ci mezgla darbības trau­cē­ju­mu gadījumā. Iz­strā­dā­tā­ji glabā ierakstus kā atribūtus un piešķir tiem unikālu primāro atslēgu. Datubāze atbalsta gan atslēgas-vērtības datu modeļus, gan dokumentu orien­tē­tus modeļus.

Tabulu klases AWS DynamoDB

Iz­man­to­jot tabulu klases, var optimizēt DynamoDB tabulu veikt­spē­ju un izmaksu struktūru. Lietotāji var iz­vē­lē­ties starp divām klasēm un 30 dienu laikā divreiz pār­slēg­ties starp tām bez pār­trau­ku­ma, lai pielāgotu izmaksas lie­to­ša­nas pa­ra­du­miem.

  • DynamoDB Standard ir iz­strā­dāts kā no­klu­sē­ju­ma tabulu klase augstas veikt­spē­jas darba slodzēm un tabulām ar ne­pa­re­dza­mām darba slodzēm. Sa­lī­dzi­nā­ju­mā standarta tabulas raksturo zemākas izmaksas lasīšanas un rak­stī­ša­nas darbībām.
  • DynamoDB Standard Infrequent Access ir op­ti­mi­zēts tabulām, kurās uz­gla­bā­ša­na ir galvenais izmaksu faktors. IA standarta tabulas piedāvā zemākas uz­gla­bā­ša­nas izmaksas. Šī klase ir ideāli piemērota arī tabulām ar datiem, kuriem piekļūst reti.

Kādas funkcijas piedāvā DynamoDB?

DynamoDB piedāvā dažādas jaudīgas funkcijas, kas nodrošina mē­ro­go­ja­mus, augsti pieejamus un rea­ģēt­spē­jī­gus lie­to­ju­mus. Turp­mā­ka­jā pārskatā apkopotas galvenās funkcijas:

  • Atslēgas-vērtības un dokumentu datu modeļi: datu bāze ir aprīkota ar elastīgu shēmu, kas ļauj piešķirt daudz dažādu atribūtu at­se­viš­ķiem ele­men­tiem.
  • ACID transak­ci­jas: NoSQL datu bāze nodrošina transak­ci­jas ar at­oma­ri­tā­ti, kon­sek­ven­ci, izolāciju un izturību (pa­zīs­ta­mas kā ACID) plašam lie­to­jum­prog­ram­mu klāstam. Tas ļauj pa­pla­ši­nāt DynamoDB mē­ro­go­ja­mī­bu un veikt­spē­ju plašākam biznesa kritisko procesu klāstam.
  • Globālās tabulas ar aktīvu-aktīvu rep­li­kā­ci­ju: DynamoDB globālās tabulas ir daudzfun­kcio­nā­las, ļaujot lie­to­tā­jiem rakstīt un lasīt no jebkuras replikas. Ka­pa­ci­tā­te tiek au­to­mā­tis­ki pielāgota re­ģio­nā­la­jām darba slodzēm.
  • DynamoDB Streams: Šī funkcija fiksē izmaiņu datus. Kad tabulas elements tiek izveidots, at­jau­ni­nāts vai dzēsts, DynamoDB Streams reģistrē notikumu un glabā to 24 stundas.
  • Se­kun­dā­rie indeksi: DynamoDB ļauj izmantot gan lokālos, gan globālos se­kun­dā­ros indeksus, lai veiktu vai­cā­ju­mus, iz­man­to­jot al­ter­na­tī­vās atslēgas. Pēc izvēles tos var īstenot kā retus indeksus, lai indeksētu tikai datu ap­akš­ko­pas.
  • Au­to­mā­tis­ka sa­da­lī­ša­na: dati tiek au­to­mā­tis­ki sadalīti vairākās daļās un skalēti at­bil­sto­ši va­ja­dzī­bām.
  • Drošības funkcijas: datu bāze piedāvā plašas funkcijas, lai no­dro­ši­nā­tu jūsu datu drošību. Tās ietver granulāru piekļuves kontroli, šifrēšanu neaktīvā stāvoklī, at­jau­no­ša­nu uz noteiktu brīdi, rezerves kopijas pēc pie­pra­sī­ju­ma un privātu tīkla sa­vie­no­ja­mī­bu.
  • Jaudas modeļi: lie­to­tā­jiem ir iespēja iz­vē­lē­ties starp pēc pie­pra­sī­ju­ma jaudas režīmu un no­dro­ši­nā­tu jaudas režīmu.
  • DynamoDB Acce­le­ra­tor (DAX): Tas ir papildu pa­kal­po­jums uzlabotai kešēšanai, kas palielina veikt­spē­ju līdz pat desmit reizēm.

Amazon DynamoDB priekš­ro­cī­bas un trūkumi

Amazon NoSQL pa­kal­po­jums DynamoDB pārsteidz gal­ve­no­kārt ar šādiem aspektiem:

  • Au­to­mā­tis­ka mē­ro­go­ša­na: AWS DynamoDB dinamiski pielāgo jaudu un sa­da­lī­ju­mu, lai atbilstu caur­laidspē­jai, no­dro­ši­not ne­ie­ro­be­žo­tu ho­ri­zon­tā­lu izaugsmi.
  • Bez­ser­ve­ru ar­hi­tek­tū­ra: datu bāzes pār­val­dī­bas sistēma tiek pilnībā pār­val­dī­ta. Tas ļauj lie­to­tā­jiem pilnībā kon­cen­trē­ties uz lie­to­jum­prog­ram­mu izstrādi, nevis uz pa­ma­tin­fras­truk­tū­ru.
  • Augsta pie­eja­mī­ba: daudz­re­ģio­nu datu bāzes un au­to­mā­tis­ka rep­li­kā­ci­ja nodrošina pie­eja­mī­bu līdz pat 99,999 %.
  • Zems latences līmenis: NoSQL datu bāze nodrošina lasīšanas un rak­stī­ša­nas piekļuvi ar vien­ci­pa­ra mi­li­se­kun­des latences līmeni pēc no­klu­sē­ju­ma. Ar DynamoDB Acce­le­ra­tor atbildes laiku ne­pie­cie­ša­mī­bas gadījumā var samazināt pat līdz mik­ro­se­kun­des dia­pa­zo­nam.
  • Vienkārša AWS in­teg­rā­ci­ja: AWS pa­kal­po­ju­mu, piemēram, CloudWatch vai Kinesis, vienota in­teg­rā­ci­ja paplašina DynamoDB fun­kcio­na­li­tā­ti un ļauj veikt papildu datu analīzes.

Lai gan priekš­ro­cī­bas ne­pār­pro­ta­mi pārsniedz trūkumus un DynamoDB noteikti ir viena no labākajām SQL al­ter­na­tī­vām, plat­for­mai ir arī dažas vājās puses. No vienas puses, datu bāze piedāvā tikai ie­ro­be­žo­tas vaicājumu iespējas, kas ir mazāk vi­s­ap­tve­ro­šas nekā daudzi kon­ku­rē­jo­ši pie­dā­vā­ju­mi. No otras puses, ciešā in­teg­rā­ci­ja ar AWS pa­kal­po­ju­miem apgrūtina pāreju uz citām plat­for­mām. Ar pie­pra­sī­ju­ma modeļiem pastāv arī risks, ka pie­pra­sī­ju­ma pieaugums var izraisīt ne­pa­re­dza­mi augstas maksas.

Kādām lie­to­jum­prog­ram­mām DynamoDB ir piemērots?

DynamoDB ir īpaši iz­strā­dāts darba slodzēm, kurās ir ne­pie­cie­šams apstrādāt, mērogot un no­dro­ši­nāt ļoti lielu datu apjomu ar ļoti zemu latences laiku un augstu pie­eja­mī­bu. Tipiski lie­to­ša­nas gadījumi ietver:

  • Ser­ver­less tīmekļa lie­to­jum­prog­ram­mas un mobilo ierīču backend, kur kontu dati, sesijas un kon­fi­gu­rā­ci­jas tiek iegūtas ar minimālu kavēšanos
  • Spēļu plat­for­mas, kur simtiem tūkstošu vai miljoniem lietotāju vien­lai­kus piekļūst spēļu serveriem
  • Satura strau­mē­ša­na globālai au­di­to­ri­jai ar ne­vien­mē­rī­gu vai pār­slo­go­tu datplūsmu
  • Bankas un finanšu pa­kal­po­ju­mu uzņēmumi, kuriem vien­lai­kus un reāllaikā jā­aps­trā­dā daudzas transak­ci­jas, vien­lai­kus risinot arī finanšu transak­ci­ju sav­lai­cī­gu­ma un drošības no­dro­ši­nā­ša­nas problēmu
  • IoT lie­to­jum­prog­ram­mas (IoT = lietu internets), kas apstrādā un uzglabā sensoru datus lielā apjomā

Sva­rī­gā­kās al­ter­na­tī­vas DynamoDB

Papildus DynamoDB pastāv arī citas datu bāzu sistēmas, kas var kalpot kā al­ter­na­tī­vas atkarībā no prasībām, datu modeļa, mē­ro­go­ša­nas un in­fras­truk­tū­ras. Tās gal­ve­no­kārt ietver:

  • MongoDB: augsta elastība un ne­ie­ro­be­žo­ta mē­ro­go­ja­mī­ba
  • MySQL: Re­la­cio­nā­la sistēma ar augstāko pie­eja­mī­bu
  • MariaDB: atvērtā koda al­ter­na­tī­va DynamoDB
  • PostgreSQL: relatīvā datu bāzes ri­si­nā­jums ar atbalstu ne­sais­tī­tiem datu tipiem
  • Firebase by Google: izcila al­ter­na­tī­va, īpaši mobilajām un tīmekļa lie­to­jum­prog­ram­mām
  • Apache Cassandra: īpaši ideāls liela apjoma datiem

Sīkāk par to, kādas priekš­ro­cī­bas piedāvā at­se­viš­ķās DynamoDB al­ter­na­tī­vas, ir ap­rak­stīts sa­is­tī­ta­jā ro­kas­grā­ma­tā.

Go to Main Menu