DynamoDB je AWS-ova potpuno upravljana NoSQL baza podataka — spremnik ključ-vrijednost i dokumenata koji nudi jednoznamenske-milisekundne performanse bilo koje veličine, s automatskim skaliranjem i bez poslužitelja za upravljanje. Osmišljena je za aplikacije koje trebaju visoke performanse i skalabilnost.
Što je DynamoDB
DynamoDB is a managed, serverless NoSQL database:
→ KEY-VALUE / DOCUMENT model (items in tables, flexible schema)
→ FAST — single-digit-millisecond latency at any scale
→ SCALABLE — handles massive throughput; scales automatically (serverless)
→ FULLY MANAGED — no servers, patching, or capacity planning (AWS handles it)
→ highly available and durable (replicated across AZs automatically)
Ključni koncepti
TABLE → a collection of items
ITEM → a record (like a row/document) with attributes
PRIMARY KEY → uniquely identifies items:
PARTITION KEY (hash key) → determines which partition stores the item (distribution)
optional SORT KEY → for ranges/sorting within a partition
SECONDARY INDEXES (GSI/LSI) → query by attributes other than the primary key
CAPACITY → on-demand (pay per request) or provisioned (set throughput)
Dizajn za obrasce pristupa (ključno)
⚠️ DynamoDB requires designing your data model around your ACCESS PATTERNS up front:
→ you query efficiently by PRIMARY KEY (and indexes) — NOT flexible ad-hoc queries
like SQL; no joins
→ the PARTITION KEY must distribute data/load evenly (a "hot" key = a bottleneck)
→ model the table(s) to serve your queries efficiently (often single-table design)
→ Great when access patterns are known; poor for ad-hoc/complex relational queries.
Zašto je važno
Razumijevanje DynamoDB-a je vrijednosno jer je to široko korištena upravljana NoSQL baza podataka na AWS-u, pogodno za aplikacije s visokim performansama i skalabilnosti, pa je to korisno AWS znanje.
Jedna vrijednost DynamoDB-a je pružanje potpuno upravljane, serverless NoSQL baze podataka s jednoznamenske-milisekundnim performansama bilo koje veličine i automatskim skaliranjem — uklanjanjem upravljanja poslužiteljima, ispravki i planiranja kapaciteta, dok se istovremeno osiguravaju dosljedno brze performanse čak i na ogromnoj skali.
To je privlačno za aplikacije koje trebaju visoku propusnost i skalabilnost (web aplikacije s visokim prometom, igre, IoT, sustavi u realnom vremenu) bez operativne opterećenja baze podataka.
Razumijevanje ključnih koncepata (tablice, stavke, ključ particije koji distribuira podatke, izbjeglne ključeve sortiranja, sekundarne indekse za ispitivanje po drugim atributima i načine kapaciteta) je nužno za korištenje.
Najznačajnije, razumijevanje da DynamoDB zahtijeva oblikovanje modela podataka oko obrazaca pristupa unaprijed je ključna spoznaja: za razliku od SQL-ovog fleksibilnog ad-hoc ispitivanja, DynamoDB učinkovito traži samo po primarnom ključu i indeksima (bez spajanja, bez fleksibilnog ispitivanja), ključ particije mora ravnomjerno distribuirati opterećenje ("vrući" ključ stvara usko grlo), i morate modelirati tablice za vašu specifična upita (često jedinstveni dizajn tablice).
Ovaj dizajn vođen obrascima pristupa je fundamentalno različit od relacijskih baza podataka i neophodan je za razumijevanje — DynamoDB izvrsno funkcionira kada su obrasci pristupa poznati i dobro modelirani, ali je loše prikladan za ad-hoc ili složena relacijska upitavanja.
Znanje kada DynamoDB odgovara (poznati obrasci pristupa, potreba za skaliranjem i performansama) naspram kada je relacijska baza podataka bolja (složeni upiti, odnosi, ad-hoc analiza) odražava dosljedan sud.
Budući da je DynamoDB popularna AWS baza podataka za skalabilne aplikacije, a razumijevanje toga (njegova upravljana/serverless priroda, ključni koncepti, a posebno kritični pristup-obrasc-vođeni model dizajna i njegovih kompromisa) je vrijednosno za AWS arhitektonske odluke, razumijevanje DynamoDB-a je vrijednosno, praktično relevantno AWS znanje — važna opcija upravljane NoSQL baze gdje razumijevanje njenih beneifita performansi i njenih posebnih zahtjeva za dizajn (i ograničenja naspram SQL-a) je ključno za njezinu primjenu.
