DynamoDB je plne spravovaná bezserverová databáza NoSQL vyvinutá spoločnosťou Amazon. Jej hlavnými výhodami sú plynulé škálovanie, reakčné časy v milisekundách, minimálna prevádzková náročnosť a jednoduchá integrácia s AWS. Príklady použitia siahajú od vývoja softvéru až po škálovanie herných platforiem a streamovanie videa v reálnom čase.

Čo je DynamoDB?

Amazon DynamoDB je bezserverová databázová služba NoSQL pre moderné aplikácie akéhokoľvek rozsahu, ktorú od roku 2012 poskytuje AWS (Amazon Web Services). Na rozdiel od mnohých konkurentov je DynamoDB plne spravované riešenie. Vďaka tomu nie je potrebné riešiť úlohy ako aktualizácie, upgrady alebo škálovanie. Systém správy databáz ponúka aj širokú škálu bezpečnostných funkcií a štandardov kompatibility. DynamoDB sa navyše bezproblémovo integruje s ďalšími službami AWS, ako sú Lambda alebo Amazon OpenSearch Service.

Štruktúra DynamoDB

Štruktúra databázy má jasnú hierarchiu s tabuľkami ako najvyššou entitou, bez prísnych vzťahov medzi nimi, na rozdiel od relačných databáz. Amazon DynamoDB ukladá dáta v partišnách, ktoré sa automaticky replikujú. Každá partiša sa skladá z troch uzlov, z ktorých každý obsahuje kópiu dát, čo umožňuje jednoduché škálovanie a poskytuje redundanciu v prípade zlyhania uzla. Vývojári ukladajú záznamy ako atribúty a priraďujú im jedinečný primárny kľúč. Databáza podporuje aj dátové modely typu kľúč-hodnota, aj modely orientované na dokumenty.

Triedy tabuliek v AWS DynamoDB

Využitím tried tabuliek je možné optimalizovať výkon a nákladovú štruktúru tabuliek DynamoDB. Používatelia si môžu vybrať medzi dvoma triedami a dvakrát za 30 dní medzi nimi prechádzať bez výpadkov, aby prispôsobili náklady vzorom používania.

  • DynamoDB Standard je navrhnutý ako predvolená trieda tabuliek pre vysokovýkonné pracovné zaťaženia a tabuľky s nepredvídateľným pracovným zaťažením. V porovnaní s tým sa štandardné tabuľky vyznačujú nižšími nákladmi na operácie čítania a zápisu.
  • DynamoDB Standard Infrequent Access je optimalizovaný pre tabuľky, kde je hlavným nákladovým faktorom úložisko. Štandardné tabuľky IA ponúkajú nižšie náklady na úložisko. Táto trieda je ideálna aj pre tabuľky s údajmi, ku ktorým sa pristupuje len zriedka.

Aké funkcie ponúka DynamoDB?

DynamoDB ponúka celý rad výkonných funkcií, ktoré umožňujú škálovateľné, vysoko dostupné a responzívne aplikácie. Nasledujúci prehľad sumarizuje kľúčové funkcie:

  • Modely údajov typu kľúč-hodnota a dokument: Databáza disponuje flexibilnou schémou, ktorá umožňuje priradiť jednotlivým položkám mnoho rôznych atribútov.
  • Transakcie ACID: Databáza NoSQL poskytuje transakcie s atomickosťou, konzistentnosťou, izoláciou a trvalosťou – známe ako ACID – pre širokú škálu aplikácií. To umožňuje rozšíriť škálovateľnosť a výkon DynamoDB na širšiu škálu procesov kritických pre podnikanie.
  • Globálne tabuľky s aktívnou replikáciou: Globálne tabuľky DynamoDB sú multiaktívne, čo umožňuje používateľom zapisovať a čítať z akejkoľvek repliky. Kapacita sa automaticky prispôsobuje regionálnym pracovným zaťaženiam.
  • DynamoDB Streams: Táto funkcia zachytáva zmeny údajov. Keď sa v tabuľke vytvorí, aktualizuje alebo odstráni položka, DynamoDB Streams zaznamená udalosť a uloží ju na 24 hodín.
  • Sekundárne indexy: DynamoDB umožňuje lokálne aj globálne sekundárne indexy, aby bolo možné používať dopyty s alternatívnymi kľúčmi. Voliteľne ich možno implementovať ako riedke indexy, aby sa indexovali len podmnožiny údajov.
  • Automatické rozdeľovanie: Dáta sa automaticky distribuujú do viacerých oddielov a podľa potreby sa škálovajú.
  • Bezpečnostné funkcie: Databáza ponúka rozsiahle funkcie na zabezpečenie bezpečnosti vašich údajov. Patria medzi ne podrobné kontroly prístupu, šifrovanie v pokoji, obnovenie v určitom čase, zálohovanie na požiadanie a pripojenie k súkromnej sieti.
  • Modely kapacity: Používatelia majú možnosť vybrať si medzi režimom kapacity na požiadanie a režimom pridelených kapacít.
  • DynamoDB Accelerator (DAX): Ide o voliteľnú službu pre vylepšené ukladanie do vyrovnávacej pamäte, ktorá zvyšuje výkon až desaťnásobne.

Výhody a nevýhody Amazon DynamoDB

Služba NoSQL DynamoDB od Amazonu zaujme hlavne týmito vlastnosťami:

  • Automatické škálovanie: AWS DynamoDB dynamicky prispôsobuje kapacitu a rozdelenie tak, aby zodpovedali priepustnosti, čo umožňuje neobmedzený horizontálny rast.
  • Bezserverová architektúra: Systém správy databázy je plne spravovaný. To umožňuje používateľom sústrediť sa výlučne na vývoj aplikácií, namiesto toho, aby sa museli venovať základnej infraštruktúre.
  • Vysoká dostupnosť: Databázy v viacerých regiónoch a automatická replikácia zabezpečujú dostupnosť až 99,999 %.
  • Nízka latencia: Databáza NoSQL poskytuje štandardne prístup na čítanie a zápis s latenciou v jednotkách milisekúnd. S DynamoDB Accelerator je možné v prípade potreby skrátiť dobu odozvy dokonca na mikrosekundy.
  • Jednoduchá integrácia AWS: Plynulá integrácia služieb AWS, ako sú CloudWatch alebo Kinesis, rozširuje funkčnosť DynamoDB a umožňuje ďalšie analýzy údajov.

Hoci výhody jasne prevážia a DynamoDB patrí rozhodne medzi najlepšie alternatívy SQL, táto platforma má aj niektoré slabé stránky. Na jednej strane databáza ponúka len obmedzené možnosti vyhľadávania, ktoré sú menej komplexné ako mnohé konkurenčné ponuky. Na druhej strane, úzka integrácia so službami AWS sťažuje migráciu na iné platformy. V prípade modelov na požiadanie existuje aj riziko, že náhle zvýšenie dopytu môže viesť k nepredvídateľne vysokým poplatkom.

Na aké oblasti použitia je DynamoDB vhodný?

DynamoDB bol špeciálne navrhnutý pre pracovné zaťaženia, pri ktorých je potrebné spracovávať, škálovať a poskytovať obrovské množstvá údajov s veľmi nízkou latenciou a vysokou dostupnosťou. Typické prípady použitia zahŕňajú:

  • Bezserverové webové aplikácie a mobilné backendy, kde sa údaje o účtoch, reláciách a konfiguráciách načítavajú s minimálnou latenciou
  • Herné platformy, kde stovky tisíc alebo milióny používateľov súčasne pristupujú k herným serverom
  • Streamovanie obsahu pre globálne publikum s nerovnomerným alebo nárazovým prevádzkovým zaťažením
  • Banky a spoločnosti poskytujúce finančné služby, ktoré musia spracovávať mnoho transakcií súčasne a v reálnom čase, pričom zároveň čelia výzve zabezpečiť včasnosť a bezpečnosť finančných transakcií
  • Aplikácie IoT (IoT = Internet vecí), ktoré spracúvajú a ukladajú údaje zo senzorov vo veľkom meradle

Najdôležitejšie alternatívy k DynamoDB

Okrem DynamoDB existujú aj iné databázové systémy, ktoré môžu slúžiť ako alternatívy v závislosti od požiadaviek, dátového modelu, škálovania a infraštruktúry. Patria medzi ne predovšetkým:

  • MongoDB: Vysoká flexibilita a neobmedzená škálovateľnosť
  • MySQL: Relacionálny systém s najvyššou dostupnosťou
  • MariaDB: Open-source alternatíva k DynamoDB
  • PostgreSQL: Relačné databázové riešenie s podporou nerelačných dátových typov
  • Firebase od Google: Vynikajúca alternatíva, najmä pre mobilné a webové aplikácie
  • Apache Cassandra: Obzvlášť ideálny pre veľké objemy údajov

Podrobnosti o výhodách jednotlivých alternatív DynamoDB sú uvedené v sprievodcovi, na ktorý odkazuje tento článok.

Prejsť na hlavné menu