Indexy, streamy a optimalizace v DynamoDB
Využití datových úložišť v AWS
Dunieski Otano
AWS Solutions Architect
Dotaz, který nešlo provést
Tabulka: userId (partition key), orderDate (sort key)
Potřeba: Najít objednávky podle e-mailové adresy
Problém: Na atributy mimo klíč nelze dotazovat
Řešení: Global Secondary Index
Indexy umožňují více přístupových vzorů
Global Secondary Index (GSI)
Jiný partition key
než základní tabulka
Lze přidat kdykoli po vytvoření tabulky
Pouze eventually consistent čtení
Použití: Dotazy na atributy mimo primární klíč
Local Secondary Index (LSI)
Stejný partition key
, jiný sort key
Musí být vytvořen při zakládání tabulky
Podporuje strongly consistent čtení
Použití: Alternativní řazení v rámci partition
GSI vs. LSI – kdy použít který
GSI
: Jiný partition key, přidej kdykoli, eventual consistency
LSI
: Stejný partition key, vytvoř při zakládání, strong consistency
Nejčastěji: GSI pro flexibilní přístupové vzory
Serializace dat pro DynamoDB
Problém
: DynamoDB Python objekty neukládá
Řešení
: Serializace do JSON nebo binárního formátu
JSON
: Jednoduchá data (dicts, lists) – json.dumps()
Base64
: Binární data (obrázky, tokeny)
DynamoDB Streams pro zachytávání změn
Streams
: Seřazený log všech změn v tabulce
Zachycuje: Vložení, aktualizace, mazání
Použití: Audit logy, replikace, triggery
Zpracuj s Lambda pro reakce v reálném čase
Time-to-Live pro automatické vypršení platnosti
TTL
: Automatické mazání položek po vypršení platnosti
Nastav Unix timestamp v atributu TTL
Ideální pro: Sessions, dočasné tokeny, cache
Mazání přes TTL je zdarma
Typy projekce indexu a výkon dotazů
KEYS_ONLY
: Jen atributy klíčů, nejmenší velikost
INCLUDE
: Klíče + vybrané atributy
ALL
: Všechny atributy, největší velikost, bez fetch dotazů
Kompromis: Náklady na úložiště vs. výkon dotazů
Dávkové operace a transakce
BatchGetItem
: Čtení až 100 položek, max. 16 MB
BatchWriteItem
: Zápis až 25 položek
TransactWriteItems
: ACID pro až 100 položek
Použij pro: Efektivitu (batch) nebo konzistenci (transakce)
Pojďme cvičit!
Využití datových úložišť v AWS
Preparing Video For Download...