Mis on Amazon DynamoDB? Kõik, mida pead teadma
DynamoDB on Amazoni poolt arendatud täielikult hallatav, serverita NoSQL-andmebaas. Selle peamised eelised on sujuv skaleerimine, millisekundiline reageerimisaeg, minimaalne töömaht ja lihtne AWS-integratsioon. Kasutusvõimalused ulatuvad tarkvaraarendusest mänguplatvormide skaleerimiseni ja reaalajas videostriimimiseni.
Mis on DynamoDB?
Amazon DynamoDB on serverita NoSQL andmebaasiteenus igasuguse suurusega kaasaegsetele rakendustele, mida AWS (Amazon Web Services) pakub alates 2012. aastast. Erinevalt paljudest konkurentidest on DynamoDB täielikult hallatav lahendus. Seetõttu pole vaja tegeleda selliste ülesannetega nagu uuendamine, värskendamine või skaleerimine. Andmebaasi haldussüsteem pakub ka laia valikut turvaomadusi ja vastavusstandardeid. Lisaks integreerub DynamoDB sujuvalt teiste AWS-teenustega, nagu Lambda või Amazon OpenSearch Service.
DynamoDB struktuur
Andmebaasi struktuur on selge hierarhiline, kus tabelid on kõrgeimad üksused, kuid erinevalt relatsioonilistest andmebaasidest ei ole nende vahel rangeid seoseid. Amazon DynamoDB salvestab andmed partitsioonidesse, mis replikeeritakse automaatselt. Iga partitsioon koosneb kolmest sõlmest, millest igaüks sisaldab andmete koopiat, mis võimaldab lihtsat skaleerimist ja tagab redundantsuse sõlme rikke korral. Arendajad salvestavad kirjed atribuutidena ja määravad neile unikaalse primaarvõtme. Andmebaas toetab nii võtme-väärtuse andmemudeleid kui ka dokumendipõhiseid mudeleid.
Tabeliklassid AWS DynamoDB-s
Tabeliklasside kasutamisega on võimalik optimeerida DynamoDB tabelite jõudlust ja kulustruktuuri. Kasutajad saavad valida kahe klassi vahel ja vahetada neid 30 päeva jooksul kaks korda ilma katkestusteta, et kohandada kulud kasutusharjumustega.
- DynamoDB Standard on loodud kui vaikimisi tabeliklass kõrge jõudlusega töökoormuste ja ettearvamatute töökoormustega tabelite jaoks. Võrdluseks, standardtabelid iseloomustavad madalamad kulud lugemis- ja kirjutamisoperatsioonide jaoks.
- DynamoDB Standard Infrequent Access on optimeeritud tabelite jaoks, kus peamine kulutegur on salvestusruum. IA standardtabelid pakuvad madalamaid salvestuskulusid. Klass sobib ideaalselt ka tabelitele, millele pääsetakse harva ligi.
Milliseid funktsioone pakub DynamoDB?
DynamoDB pakub mitmesuguseid võimsaid funktsioone, mis võimaldavad luua skaleeritavaid, kõrge kättesaadavusega ja kiireid rakendusi. Järgnev ülevaade võtab kokku peamised funktsioonid:
- Võtme-väärtuse ja dokumendi andmemudelid: Andmebaasil on paindlik skeem, mis võimaldab üksikutele elementidele määrata palju erinevaid atribuute.
- ACID-tehingud: NoSQL-andmebaas pakub tehingutele atomilisust, järjepidevust, isoleeritust ja püsivust (tuntud kui ACID) laiale rakenduste valikule. See võimaldab laiendada DynamoDB skaleeritavust ja jõudlust laiemale valikule äri jaoks olulistele protsessidele.
- Globaalsed tabelid aktiivse-aktiivse replikatsiooniga: DynamoDB globaalsed tabelid on mitmeaktiivsed, võimaldades kasutajatel kirjutada ja lugeda mis tahes replikast. Mahutavus kohandatakse automaatselt piirkondliku töökoormusega.
- DynamoDB Streams: see funktsioon salvestab muutunud andmed. Kui tabelis luuakse, uuendatakse või kustutatakse element, salvestab DynamoDB Streams sündmuse ja säilitab seda 24 tundi.
- Sekundaarsed indeksid: DynamoDB võimaldab nii kohalikke kui ka globaalseid sekundaarseid indekseid, et võimaldada päringuid alternatiivsete võtmete abil. Valikuliselt saab neid rakendada hõredate indeksitena, et indekseerida spetsiaalselt ainult andmete alamkogumeid.
- Automaatne partitsioneerimine: andmed jaotatakse automaatselt mitme partitsiooni vahel ja skaleeritakse vastavalt vajadusele.
- Turvafunktsioonid: andmebaas pakub laiaulatuslikke funktsioone teie andmete turvalisuse tagamiseks. Nende hulka kuuluvad granulaarsed juurdepääsukontrollid, salvestatud andmete krüpteerimine, ajalise taastamise funktsioon, tellitavad varukoopiad ja privaatvõrgu ühenduvus.
- Mahumudelid: kasutajatel on võimalus valida tellimusel põhineva mahu režiimi ja eelnevalt määratud mahu režiimi vahel.
- DynamoDB Accelerator (DAX): see on valikuline teenus parema vahemällu salvestamise jaoks, mis suurendab jõudlust kuni kümnekordselt.
Amazon DynamoDB eelised ja puudused
Amazoni NoSQL-teenus DynamoDB muljetab peamiselt järgmiste omadustega:
- Automaatne skaleerimine: AWS DynamoDB kohandab dünaamiliselt võimsust ja partitsioneerimist läbilaskevõime järgi, võimaldades piiramatut horisontaalset kasvu.
- Serverita arhitektuur: andmebaasi haldamise süsteem on täielikult hallatav. See võimaldab kasutajatel keskenduda täielikult rakenduste arendamisele, selle asemel et pidada silmas aluseks olevat infrastruktuuri.
- Kõrge kättesaadavus: mitme piirkonna andmebaasid ja automaatne replikatsioon tagavad kuni 99,999% kättesaadavuse.
- Madal latentsus: NoSQL-andmebaas pakub vaikimisi lugemis- ja kirjutusjuurdepääsu ühekohalise millisekundilise latentsusega. DynamoDB Acceleratori abil on vastuse aega vajadusel võimalik vähendada isegi mikrosekundini.
- Lihtne AWS-i integratsioon: AWS-i teenuste, nagu CloudWatch või Kinesis, sujuv integratsioon laiendab DynamoDB funktsionaalsust ja võimaldab täiendavaid andmeanalüüse.
Kuigi eelised kaaluvad selgelt üles ja DynamoDB on kindlasti üks parimaid SQL-alternatiive, on platvormil ka mõned puudused. Ühelt poolt pakub andmebaas ainult piiratud päringuvõimalusi, mis on vähem kõikehõlmavad kui paljudel konkureerivatel pakkumistel. Teiselt poolt muudab tihe integratsioon AWS-teenustega raskemaks ülemineku teistele platvormidele. Nõudlusel põhinevate mudelite puhul on ka oht, et nõudluse tipphetked võivad kaasa tuua ootamatult kõrged tasud.
Millistele rakendusaladele sobib DynamoDB?
DynamoDB on spetsiaalselt loodud töökoormuste jaoks, kus on vaja töödelda ja skaleerida tohutuid andmehulki ning tagada väga madal latentsus ja kõrge kättesaadavus. Tüüpilised kasutusjuhtumid on järgmised:
- Serverita veebirakendused ja mobiilsed tagapõhjad, kus kontod, sessioonid ja konfiguratsioonid laaditakse minimaalse viivitusega
- Mänguplatvormid, kus sadad tuhanded või miljonid kasutajad pääsevad samaaegselt mänguserveritele
- Sisu voogedastus ülemaailmsele publikule, kus liiklus on ebaühtlane või tihe
- Pangad ja finantsteenuste ettevõtted, mis peavad töötlema paljusid tehinguid samaaegselt ja reaalajas, samal ajal tagades finantstehingute õigeaegsuse ja turvalisuse
- IoT-rakendused (IoT = asjade internet), mis töötlevad ja salvestavad andureid andmeid suures mahus
DynamoDB kõige olulisemad alternatiivid
Lisaks DynamoDB-le on veel teisi andmebaasisüsteeme, mis võivad sõltuvalt nõuetest, andmemudelist, skaleerimisest ja infrastruktuurist olla alternatiiviks. Nende hulka kuuluvad peamiselt:
- MongoDB: Suur paindlikkus ja piiramatu skaleeritavus
- MySQL: suhteline süsteem tipptasemel kättesaadavusega
- MariaDB: avatud lähtekoodiga alternatiiv DynamoDB-le
- PostgreSQL: relatsiooniline andmebaasilahendus, mis toetab mittesuhetepõhiseid andmetüüpe
- Firebase by Google: suurepärane alternatiiv, eriti mobiili- ja veebirakenduste jaoks
- Apache Cassandra: eriti ideaalne suurte andmemahtude jaoks
Üksikasjalikult on DynamoDB alternatiivide eelised kirjeldatud lingitud juhendis.