Indici, stream e ottimizzazione in DynamoDB

Utilizzare gli archivi dati in AWS

Dunieski Otano

AWS Solutions Architect

La query impossibile da fare

  • Tabella: userId (partition key), orderDate (sort key)
  • Esigenza: Trovare ordini per email
  • Problema: Non puoi fare query su attributi non chiave
  • Soluzione: Global Secondary Index
    • Gli indici abilitano pattern di accesso multipli

gsi

Utilizzare gli archivi dati in AWS

Global Secondary Index (GSI)

  • Partition key diversa dalla tabella base
  • Aggiungibile in qualsiasi momento dopo la creazione
  • Solo letture eventual consistent
  • Caso d'uso: Query su attributi non primari

gsi_1

Utilizzare gli archivi dati in AWS

Local Secondary Index (LSI)

  • Stessa partition key, sort key diversa
  • Va creato insieme alla tabella
  • Supporta letture strongly consistent
  • Caso d'uso: Ordini alternativi nella partizione

lsi

Utilizzare gli archivi dati in AWS

GSI vs LSI: quando usarli

  • GSI: Partition key diversa, aggiungibile, consistenza eventuale
  • LSI: Stessa partition key, crea con la tabella, consistenza forte
  • Più comune: GSI per accessi flessibili

gsi_o_lsi

Utilizzare gli archivi dati in AWS

Serializzazione dati per DynamoDB

  • Problema: DynamoDB non salva oggetti Python
  • Soluzione: Serializza in JSON o binario
  • JSON: Dati semplici (dict, list) - json.dumps()
  • Base64: Dati binari (immagini, token)

serializzazione

Utilizzare gli archivi dati in AWS

DynamoDB Streams per il change data capture

  • Streams: Log ordinato di tutte le modifiche alla tabella
  • Cattura: insert, update, delete
  • Usi: Audit log, replica, trigger
  • Elabora con Lambda per reazioni in tempo reale

stream

Utilizzare gli archivi dati in AWS

Time-to-Live per scadenza automatica

  • TTL: Eliminazione automatica dopo la scadenza
  • Imposta timestamp Unix nell'attributo TTL
  • Ideale per: Sessioni, token temporanei, cache
  • Nessun costo per le eliminazioni TTL

ttl

Utilizzare gli archivi dati in AWS

Tipi di proiezione indice e performance

  • KEYS_ONLY: Solo chiavi, dimensione minima
  • INCLUDE: Chiavi + attributi specificati
  • ALL: Tutti gli attributi, più grande, niente fetch aggiuntivi
  • Trade-off: Costo storage vs performance query

indice

Utilizzare gli archivi dati in AWS

Operazioni batch e transazioni

  • BatchGetItem: Legge fino a 100 item, max 16MB
  • BatchWriteItem: Scrive fino a 25 item
  • TransactWriteItems: ACID su max 100 item
  • Usa per: Efficienza (batch) o consistenza (transazioni)

batch

Utilizzare gli archivi dati in AWS

Passons à la pratique !

Utilizzare gli archivi dati in AWS

Preparing Video For Download...