Índices, streams y optimización en DynamoDB

Uso de almacenes de datos en AWS

Dunieski Otano

AWS Solutions Architect

La consulta que no se podía hacer

  • Tabla: userId (clave de partición), orderDate (clave de ordenación)
  • Necesidad: Buscar pedidos por email
  • Problema: No se consulta por atributos no clave
  • Solución: Índice secundario global
    • Los índices permiten múltiples patrones de acceso

gsi

Uso de almacenes de datos en AWS

Índice secundario global (GSI)

  • Clave de partición diferente a la tabla base
  • Puede añadirse en cualquier momento
  • Solo lecturas con consistencia eventual
  • Caso de uso: Consultar atributos no primarios

gsi_1

Uso de almacenes de datos en AWS

Índice secundario local (LSI)

  • Misma clave de partición, distinta clave de ordenación
  • Debe crearse al crear la tabla
  • Soporta lecturas fuertemente consistentes
  • Caso de uso: órdenes alternativas dentro de la partición

lsi

Uso de almacenes de datos en AWS

GSI vs LSI: cuándo usar cada uno

  • GSI: Clave de partición distinta, añadir en cualquier momento, consistencia eventual
  • LSI: Misma clave de partición, crear al inicio, consistencia fuerte
  • Lo más común: GSI para patrones de acceso flexibles

gsi_o_lsi

Uso de almacenes de datos en AWS

Serialización de datos para DynamoDB

  • Problema: DynamoDB no guarda objetos de Python
  • Solución: Serializa a JSON o binario
  • JSON: Datos simples (dicts, listas) - json.dumps()
  • Base64: Datos binarios (imágenes, tokens)

serialización

Uso de almacenes de datos en AWS

DynamoDB Streams para captura de cambios

  • Streams: Registro ordenado de todos los cambios
  • Captura: inserciones, actualizaciones, borrados
  • Usos: auditoría, replicación, triggers
  • Procésalo con Lambda para reacciones en tiempo real

streams

Uso de almacenes de datos en AWS

Time-to-Live para expiración automática

  • TTL: Borrado automático tras expirar
  • Pon timestamp Unix en el atributo TTL
  • Ideal para: sesiones, tokens temporales, caché
  • Sin coste por borrados de TTL

ttl

Uso de almacenes de datos en AWS

Tipos de proyección y rendimiento de consulta

  • KEYS_ONLY: Solo claves, tamaño mínimo
  • INCLUDE: Claves + atributos indicados
  • ALL: Todos los atributos, mayor tamaño, sin fetches
  • Compensación: coste de almacenamiento vs rendimiento

índice

Uso de almacenes de datos en AWS

Operaciones por lotes y transacciones

  • BatchGetItem: Lee hasta 100 ítems, máx. 16MB
  • BatchWriteItem: Escribe hasta 25 ítems
  • TransactWriteItems: ACID en hasta 100 ítems
  • Úsalo para: eficiencia (batch) o consistencia (transacciones)

lotes

Uso de almacenes de datos en AWS

¡Vamos a practicar!

Uso de almacenes de datos en AWS

Preparing Video For Download...