Kas yra „Amazon“ „DynamoDB“? Viskas, ką reikia žinoti
DynamoDB yra visiškai valdomas, be serverių NoSQL duomenų bazė, sukurta „Amazon“. Jos pagrindiniai privalumai yra sklandus mastelio keitimas, atsakymo laikas milisekundėmis, minimalūs eksploatavimo sąnaudos ir lengva AWS integracija. Naudojimo atvejai svyruoja nuo programinės įrangos kūrimo iki žaidimų platformų mastelio keitimo ir vaizdo transliacijos realiuoju laiku.
Kas yra DynamoDB?
„Amazon DynamoDB“ yra serverių nereikalaujanti NoSQL duomenų bazės paslauga, skirta šiuolaikinėms bet kokio masto programoms, kurią nuo 2012 m. teikia AWS (Amazon Web Services). Skirtingai nuo daugelio konkurentų, „DynamoDB“ yra visiškai valdomas sprendimas. Todėl nereikia atlikti tokių užduočių kaip atnaujinimai, atnaujinimai ar mastelio keitimas. Duomenų bazių valdymo sistema taip pat siūlo platų saugumo funkcijų ir atitikties standartų spektrą. Be to, DynamoDB sklandžiai integruojasi su kitomis AWS paslaugomis, pvz., Lambda ar Amazon OpenSearch Service.
DynamoDB struktūra
Duomenų bazės struktūra pasižymi aiškia hierarchija, kurioje lentelės yra aukščiausiosios entitetai, be griežtų ryšių tarp jų, skirtingai nei reliacinėse duomenų bazėse. „Amazon DynamoDB“ saugo duomenis skaidiniuose, kurie automatiškai replikuojami. Kiekvienas skaidinys susideda iš trijų mazgų, kuriuose saugoma duomenų kopija, todėl galima lengvai keisti mastelį ir užtikrinti dubliavimą mazgo gedimo atveju. Kūrėjai saugo įrašus kaip atributus ir jiems priskiria unikalų pirminį raktą. Duomenų bazė palaiko tiek raktų-verčių duomenų modelius, tiek dokumentais orientuotus modelius.
AWS DynamoDB lentelių klasės
Naudojant lentelių klases, galima optimizuoti DynamoDB lentelių našumą ir sąnaudų struktūrą. Vartotojai gali rinktis iš dviejų klasių ir per 30 dienų du kartus pereiti iš vienos klasės į kitą be pertraukos, kad pritaikytų sąnaudas prie naudojimo modelių.
- „DynamoDB Standard“ yra sukurta kaip numatytoji lentelių klasė, skirta didelio našumo darbo krūviams ir lentelėms su nenuspėjamais darbo krūviais. Palyginti su kitomis lentelėmis, standartinės lentelės pasižymi mažesnėmis skaitymo ir rašymo operacijų sąnaudomis.
- „DynamoDB Standard Infrequent Access“ yra optimizuotas lentelėms, kuriose saugojimas yra pagrindinis išlaidų veiksnys. IA standartinės lentelės siūlo mažesnes saugojimo išlaidas. Ši klasė taip pat idealiai tinka lentelėms su retai naudojamais duomenimis.
Kokias funkcijas siūlo DynamoDB?
DynamoDB siūlo įvairias galingas funkcijas, kurios leidžia kurti mastelio keitimą palaikančias, labai prieinamas ir greitai reaguojančias programas. Toliau pateiktoje apžvalgoje apibendrinamos pagrindinės funkcijos:
- Raktų-verčių ir dokumentų duomenų modeliai: duomenų bazė turi lanksčią schemą, leidžiančią priskirti daugybę skirtingų atributų atskiriems elementams.
- ACID sandoriai: NoSQL duomenų bazė užtikrina sandorių atomiškumą, nuoseklumą, izoliaciją ir patvarumą (žinoma kaip ACID) įvairioms taikmenoms. Tai leidžia išplėsti DynamoDB mastelį ir našumą į platesnį verslui svarbių procesų spektrą.
- Globalios lentelės su aktyvia-aktyvia replikacija: DynamoDB globalios lentelės yra daugiafunkcinės, todėl vartotojai gali rašyti ir skaityti iš bet kurios replikos. Talpa automatiškai pritaikoma prie regioninių darbo krūvių.
- DynamoDB Streams: ši funkcija fiksuoja duomenų pokyčius. Kai lentelėje sukuriama, atnaujinama ar ištrinama eilutė, DynamoDB Streams įrašo šį įvykį ir saugo jį 24 valandas.
- Antriniai indeksai: DynamoDB leidžia naudoti tiek vietinius, tiek globalius antrinius indeksus, kad būtų galima atlikti užklausas naudojant alternatyvius raktus. Pasirenkamai jie gali būti įgyvendinti kaip retiniai indeksai, kad būtų indeksuojami tik duomenų pogrupiai.
- Automatinis skaidymas: duomenys automatiškai paskirstomi per kelis skaidinius ir pagal poreikį mastelio keičiami.
- Saugumo funkcijos: duomenų bazė siūlo išsamias funkcijas, užtikrinančias jūsų duomenų saugumą. Tai apima smulkią prieigos kontrolę, šifravimą saugojimo metu, atkūrimą tam tikru laiku, atsargines kopijas pagal užsakymą ir privačiojo tinklo ryšį.
- Talpos modeliai: vartotojai gali rinktis iš talpos pagal užsakymą ir talpos pagal poreikį režimų.
- DynamoDB Accelerator (DAX): tai papildoma paslauga, skirta pagerinti talpyklos veikimą, kuri padidina našumą iki dešimties kartų.
„Amazon DynamoDB“ privalumai ir trūkumai
„Amazon“ NoSQL paslauga „DynamoDB“ įspūdinga visų pirma dėl šių dalykų:
- Automatinis mastelio keitimas: AWS DynamoDB dinamiškai pritaiko pajėgumą ir skaidymą, kad atitiktų pralaidumą, taip užtikrindama neribotą horizontalią plėtrą.
- Serverių nereikalaujanti architektūra: duomenų bazių valdymo sistema yra visiškai valdoma. Tai leidžia vartotojams visą dėmesį skirti programų kūrimui, o ne pagrindinei infrastruktūrai.
- Didelis prieinamumas: kelių regionų duomenų bazės ir automatinis replikavimas užtikrina iki 99,999 % prieinamumą.
- Mažas vėlavimas: NoSQL duomenų bazė numatytuoju atveju suteikia skaitymo ir rašymo prieigą su vieno skaitmens milisekundžių vėlavimu. Naudojant DynamoDB Accelerator, atsakymo laikas prireikus gali būti sumažintas iki mikrosekundžių.
- Paprasta AWS integracija: sklandi AWS paslaugų, pvz., „CloudWatch“ ar „Kinesis“, integracija išplečia „DynamoDB“ funkcionalumą ir leidžia atlikti papildomus duomenų analizės veiksmus.
Nors privalumai aiškiai nusveria trūkumus ir DynamoDB neabejotinai yra viena iš geriausių SQL alternatyvų, platforma taip pat turi keletą trūkumų. Viena vertus, duomenų bazė siūlo tik ribotas užklausų galimybes, kurios yra mažiau išsamios nei daugelio konkurentų. Kita vertus, glaudus integravimas su AWS paslaugomis apsunkina perėjimą prie kitų platformų. Naudojant užsakomąsias modelius, taip pat kyla rizika, kad paklausos šuoliai gali lemti nenumatytus didelius mokesčius.
Kokioms taikymo sritims tinka DynamoDB?
DynamoDB buvo specialiai sukurta darbo krūviams, kuriuose reikia apdoroti, mastelinti ir pateikti didelius duomenų kiekius su labai mažu vėlavimu ir dideliu prieinamumu. Tipiniai naudojimo atvejai:
- Serverių neturinčios žiniatinklio programos ir mobiliosios užkulisės, kuriose sąskaitų duomenys, sesijos ir konfigūracijos gaunami su minimaliu vėlavimu
- Žaidimų platformos, kuriose šimtai tūkstančių ar milijonai vartotojų vienu metu prisijungia prie žaidimų serverių
- Turinio transliacija pasaulinei auditorijai su nevienodais arba staigiais srauto svyravimais
- Bankai ir finansinių paslaugų įmonės, kurioms reikia vienu metu ir realiuoju laiku apdoroti daug sandorių, tuo pačiu užtikrinant finansinių sandorių savalaikiškumą ir saugumą
- IoT programos (IoT = daiktų internetas), kurios apdoroja ir saugo jutiklių duomenis dideliu mastu
Svarbiausios alternatyvos DynamoDB
Be DynamoDB, yra ir kitų duomenų bazių sistemų, kurios gali būti alternatyvos, priklausomai nuo reikalavimų, duomenų modelio, mastelio ir infrastruktūros. Tai pirmiausia yra:
- MongoDB: didelis lankstumas ir neribotas mastelio keitimas
- MySQL: reliacinė sistema su aukščiausios klasės prieinamumu
- MariaDB: atvirojo kodo alternatyva DynamoDB
- PostgreSQL: reliacinė duomenų bazė, palaikanti nereliacinius duomenų tipus
- Firebase by Google: puiki alternatyva, ypač mobiliosioms ir internetinėms programoms
- „Apache Cassandra“: ypač tinka dideliems duomenų kiekiams
Kokius privalumus siūlo atskiri DynamoDB alternatyvūs sprendimai, išsamiai aptariama nuorodoje pateiktame vadove.