Indecși, fluxuri și optimizare în DynamoDB

Utilizarea serviciilor de stocare date în AWS

Dunieski Otano

AWS Solutions Architect

Interogarea care nu putea fi realizată

  • Tabel: userId (cheie de partiție), orderDate (cheie de sortare)
  • Necesitate: Găsirea comenzilor după adresa de email
  • Problemă: Nu se poate interoga pe atribute non-cheie
  • Soluție: Global Secondary Index
    • Indecșii permit mai multe moduri de acces

gsi

Utilizarea serviciilor de stocare date în AWS

Global Secondary Index (GSI)

  • Cheie de partiție diferită față de tabelul de bază
  • Poate fi adăugat oricând după crearea tabelului
  • Numai citiri eventual consistente
  • Caz de utilizare: Interogare pe atribute non-cheie primară

gsi_1

Utilizarea serviciilor de stocare date în AWS

Local Secondary Index (LSI)

  • Aceeași cheie de partiție, cheie de sortare diferită
  • Trebuie creat la crearea tabelului
  • Suportă citiri puternic consistente
  • Caz de utilizare: Ordine alternative de sortare în partiție

lsi

Utilizarea serviciilor de stocare date în AWS

GSI vs. LSI – când să folosești fiecare

  • GSI: Cheie de partiție diferită, adăugat oricând, consistență eventuală
  • LSI: Aceeași cheie de partiție, creat la inițializarea tabelului, consistență puternică
  • Cel mai frecvent: GSI pentru modele de acces flexibile

gsi_or_lsi

Utilizarea serviciilor de stocare date în AWS

Serializarea datelor pentru DynamoDB

  • Problemă: DynamoDB nu stochează obiecte Python
  • Soluție: Serializare în JSON sau binar
  • JSON: Date simple (dicționare, liste) - json.dumps()
  • Base64: Date binare (imagini, tokeni)

serialization

Utilizarea serviciilor de stocare date în AWS

DynamoDB Streams pentru captura modificărilor

  • Fluxuri: Jurnal ordonat al tuturor modificărilor din tabel
  • Captează: Inserări, actualizări, ștergeri
  • Cazuri de utilizare: Jurnale de audit, replicare, declanșatoare
  • Procesare cu Lambda pentru reacții în timp real

streams

Utilizarea serviciilor de stocare date în AWS

Time-to-Live pentru expirare automată

  • TTL: Ștergere automată a elementelor după expirare
  • Setează un timestamp Unix în atributul TTL
  • Ideal pentru: Sesiuni, tokeni temporari, cache
  • Fără costuri pentru ștergerile TTL

ttl

Utilizarea serviciilor de stocare date în AWS

Tipuri de proiecție ale indecșilor și performanța interogărilor

  • KEYS_ONLY: Doar atributele cheie, dimensiune minimă
  • INCLUDE: Chei + atribute specificate
  • ALL: Toate atributele, dimensiune maximă, fără fetch-uri suplimentare
  • Compromis: Cost de stocare vs. performanță la interogare

index

Utilizarea serviciilor de stocare date în AWS

Operații batch și tranzacții

  • BatchGetItem: Citire până la 100 de elemente, max. 16 MB
  • BatchWriteItem: Scriere până la 25 de elemente
  • TransactWriteItems: ACID pentru până la 100 de elemente
  • Folosește pentru: Eficiență (batch) sau consistență (tranzacții)

batch

Utilizarea serviciilor de stocare date în AWS

Hai să exersăm!

Utilizarea serviciilor de stocare date în AWS

Preparing Video For Download...