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ů

gsi

Využití datových úložišť v AWS

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íč

gsi_1

Využití datových úložišť v AWS

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

lsi

Využití datových úložišť v AWS

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

gsi_or_lsi

Využití datových úložišť v AWS

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)

serialization

Využití datových úložišť v AWS

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

streams

Využití datových úložišť v AWS

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

ttl

Využití datových úložišť v AWS

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ů

index

Využití datových úložišť v AWS

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)

batch

Využití datových úložišť v AWS

Pojďme cvičit!

Využití datových úložišť v AWS

Preparing Video For Download...