Kas ir Amazon DynamoDB? Viss, kas jums jāzina
DynamoDB ir pilnībā pārvaldīta, bezserveru NoSQL datu bāze, ko izstrādājusi Amazon. Tās galvenās priekšrocības ir vienmērīga mērogojamība, milisekundes reakcijas laiks, minimālas ekspluatācijas izmaksas un viegla integrācija AWS. Lietošanas gadījumi ir dažādi – no programmatūras izstrādes līdz spēļu platformu mērogošanai un reāllaika video straumēšanai.
Kas ir DynamoDB?
Amazon DynamoDB ir bezserveru NoSQL datu bāzes pakalpojums modernām lietojumprogrammām jebkura mēroga, ko kopš 2012. gada nodrošina AWS (Amazon Web Services). Atšķirībā no daudziem konkurentiem DynamoDB ir pilnībā pārvaldīts risinājums. Tā rezultātā nav nepieciešams veikt tādas darbības kā uzlabojumi, atjauninājumi vai mērogu pielāgošana. Datu bāzes pārvaldības sistēma piedāvā arī plašu drošības funkciju un atbilstības standartu klāstu. Turklāt DynamoDB nevainojami integrējas ar citiem AWS pakalpojumiem, piemēram, Lambda vai Amazon OpenSearch Service.
DynamoDB struktūra
Datubāzes struktūra ir skaidri hierarhiska, kur galvenās vienības ir tabulas, starp kurām nav stingru saistību, atšķirībā no relatīvajām datubāzēm. Amazon DynamoDB glabā datus nodalījumos, kas tiek automātiski replikēti. Katrs nodalījums sastāv no trim mezgliem, katrā no kuriem atrodas datu kopija, kas ļauj viegli mainīt mērogu un nodrošina redundanci mezgla darbības traucējumu gadījumā. Izstrā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 orientētus modeļus.
Tabulu klases AWS DynamoDB
Izmantojot tabulu klases, var optimizēt DynamoDB tabulu veiktspēju un izmaksu struktūru. Lietotāji var izvēlēties starp divām klasēm un 30 dienu laikā divreiz pārslēgties starp tām bez pārtraukuma, lai pielāgotu izmaksas lietošanas paradumiem.
- DynamoDB Standard ir izstrādāts kā noklusējuma tabulu klase augstas veiktspējas darba slodzēm un tabulām ar neparedzamām darba slodzēm. Salīdzinājumā standarta tabulas raksturo zemākas izmaksas lasīšanas un rakstīšanas darbībām.
- DynamoDB Standard Infrequent Access ir optimizēts tabulām, kurās uzglabāšana ir galvenais izmaksu faktors. IA standarta tabulas piedāvā zemākas uzglabāšanas 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ērogojamus, augsti pieejamus un reaģētspējīgus lietojumus. Turpmākajā 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 atsevišķiem elementiem.
- ACID transakcijas: NoSQL datu bāze nodrošina transakcijas ar atomaritāti, konsekvenci, izolāciju un izturību (pazīstamas kā ACID) plašam lietojumprogrammu klāstam. Tas ļauj paplašināt DynamoDB mērogojamību un veiktspēju plašākam biznesa kritisko procesu klāstam.
- Globālās tabulas ar aktīvu-aktīvu replikāciju: DynamoDB globālās tabulas ir daudzfunkcionālas, ļaujot lietotājiem rakstīt un lasīt no jebkuras replikas. Kapacitāte tiek automātiski pielāgota reģionālajām darba slodzēm.
- DynamoDB Streams: Šī funkcija fiksē izmaiņu datus. Kad tabulas elements tiek izveidots, atjaunināts vai dzēsts, DynamoDB Streams reģistrē notikumu un glabā to 24 stundas.
- Sekundārie indeksi: DynamoDB ļauj izmantot gan lokālos, gan globālos sekundāros indeksus, lai veiktu vaicājumus, izmantojot alternatīvās atslēgas. Pēc izvēles tos var īstenot kā retus indeksus, lai indeksētu tikai datu apakškopas.
- Automātiska sadalīšana: dati tiek automātiski sadalīti vairākās daļās un skalēti atbilstoši vajadzībām.
- Drošības funkcijas: datu bāze piedāvā plašas funkcijas, lai nodrošinātu jūsu datu drošību. Tās ietver granulāru piekļuves kontroli, šifrēšanu neaktīvā stāvoklī, atjaunošanu uz noteiktu brīdi, rezerves kopijas pēc pieprasījuma un privātu tīkla savienojamību.
- Jaudas modeļi: lietotājiem ir iespēja izvēlēties starp pēc pieprasījuma jaudas režīmu un nodrošinātu jaudas režīmu.
- DynamoDB Accelerator (DAX): Tas ir papildu pakalpojums uzlabotai kešēšanai, kas palielina veiktspēju līdz pat desmit reizēm.
Amazon DynamoDB priekšrocības un trūkumi
Amazon NoSQL pakalpojums DynamoDB pārsteidz galvenokārt ar šādiem aspektiem:
- Automātiska mērogošana: AWS DynamoDB dinamiski pielāgo jaudu un sadalījumu, lai atbilstu caurlaidspējai, nodrošinot neierobežotu horizontālu izaugsmi.
- Bezserveru arhitektūra: datu bāzes pārvaldības sistēma tiek pilnībā pārvaldīta. Tas ļauj lietotājiem pilnībā koncentrēties uz lietojumprogrammu izstrādi, nevis uz pamatinfrastruktūru.
- Augsta pieejamība: daudzreģionu datu bāzes un automātiska replikācija nodrošina pieejamību līdz pat 99,999 %.
- Zems latences līmenis: NoSQL datu bāze nodrošina lasīšanas un rakstīšanas piekļuvi ar viencipara milisekundes latences līmeni pēc noklusējuma. Ar DynamoDB Accelerator atbildes laiku nepieciešamības gadījumā var samazināt pat līdz mikrosekundes diapazonam.
- Vienkārša AWS integrācija: AWS pakalpojumu, piemēram, CloudWatch vai Kinesis, vienota integrācija paplašina DynamoDB funkcionalitāti un ļauj veikt papildu datu analīzes.
Lai gan priekšrocības nepārprotami pārsniedz trūkumus un DynamoDB noteikti ir viena no labākajām SQL alternatīvām, platformai ir arī dažas vājās puses. No vienas puses, datu bāze piedāvā tikai ierobežotas vaicājumu iespējas, kas ir mazāk visaptverošas nekā daudzi konkurējoši piedāvājumi. No otras puses, ciešā integrācija ar AWS pakalpojumiem apgrūtina pāreju uz citām platformām. Ar pieprasījuma modeļiem pastāv arī risks, ka pieprasījuma pieaugums var izraisīt neparedzami augstas maksas.
Kādām lietojumprogrammām DynamoDB ir piemērots?
DynamoDB ir īpaši izstrādāts darba slodzēm, kurās ir nepieciešams apstrādāt, mērogot un nodrošināt ļoti lielu datu apjomu ar ļoti zemu latences laiku un augstu pieejamību. Tipiski lietošanas gadījumi ietver:
- Serverless tīmekļa lietojumprogrammas un mobilo ierīču backend, kur kontu dati, sesijas un konfigurācijas tiek iegūtas ar minimālu kavēšanos
- Spēļu platformas, kur simtiem tūkstošu vai miljoniem lietotāju vienlaikus piekļūst spēļu serveriem
- Satura straumēšana globālai auditorijai ar nevienmērīgu vai pārslogotu datplūsmu
- Bankas un finanšu pakalpojumu uzņēmumi, kuriem vienlaikus un reāllaikā jāapstrādā daudzas transakcijas, vienlaikus risinot arī finanšu transakciju savlaicīguma un drošības nodrošināšanas problēmu
- IoT lietojumprogrammas (IoT = lietu internets), kas apstrādā un uzglabā sensoru datus lielā apjomā
Svarīgākās alternatīvas DynamoDB
Papildus DynamoDB pastāv arī citas datu bāzu sistēmas, kas var kalpot kā alternatīvas atkarībā no prasībām, datu modeļa, mērogošanas un infrastruktūras. Tās galvenokārt ietver:
- MongoDB: augsta elastība un neierobežota mērogojamība
- MySQL: Relacionāla sistēma ar augstāko pieejamību
- MariaDB: atvērtā koda alternatīva DynamoDB
- PostgreSQL: relatīvā datu bāzes risinājums ar atbalstu nesaistītiem datu tipiem
- Firebase by Google: izcila alternatīva, īpaši mobilajām un tīmekļa lietojumprogrammām
- Apache Cassandra: īpaši ideāls liela apjoma datiem
Sīkāk par to, kādas priekšrocības piedāvā atsevišķās DynamoDB alternatīvas, ir aprakstīts saistītajā rokasgrāmatā.