Saltar al contenido
CLF-C02Sesión 10 · Bases de datos

Amazon DynamoDB

Qué es: Amazon DynamoDB es la base de datos NoSQL serverless de AWS, de tipo clave-valor y documentos, que responde en milisegundos de un dígito a cualquier escala.

  • Serverless: sin instancias que elegir, parchear ni escalar, y sin ventanas de mantenimiento. Copia tus datos en tres AZ.
  • Tabla, elemento y clave: una tabla guarda elementos (items), cada uno con sus propios atributos. La clave de partición (partition key) identifica dónde vive cada elemento; una clave de ordenación (sort key) opcional ordena los que comparten partición.
  • Query frente a Scan: Query va directo a una clave de partición; Scan lee la tabla entera. Por eso el diseño empieza por las preguntas que hará tu aplicación.
  • Capacidad: bajo demanda (on-demand), pagas cada lectura y escritura y escala sola, incluso a cero; o aprovisionada, fijas lecturas y escrituras por segundo y pagas por hora, con Auto Scaling opcional.
  • Extras: tablas globales, copiadas en varias Regiones con escritura en todas; copias continuas para restaurar a cualquier segundo de los últimos 35 días; y DAX, una caché que baja la respuesta a microsegundos.

Analogía: los casilleros numerados de una estación: con el número abres el tuyo al instante, haya diez o diez millones. Dónde falla la analogía: en los casilleros puedes recorrerlos todos para buscar una maleta roja. En DynamoDB eso es un Scan, y en una tabla grande es lento y caro; tampoco hay JOIN entre tablas.

Ejemplo real: Juegos Pixelia lanza un juego móvil y no sabe si tendrá mil o diez millones de jugadores. Guarda cada perfil en DynamoDB con la clave jugador_id y la capacidad bajo demanda: el día del lanzamiento la tabla absorbe el pico sin que nadie toque servidores.

Úsalo cuando: accedas por clave, el tráfico sea enorme o impredecible, quieras serverless o necesites latencia baja constante: carritos, sesiones, perfiles, tablas de puntuación. No lo uses cuando: necesites JOIN, consultas libres por cualquier columna o reportes complejos: ahí va una relacional.

En el examen: “NoSQL”, “clave-valor”, “milisegundos de un dígito”, “serverless” o “escala sin administrar servidores” para datos es DynamoDB. “Microsegundos para DynamoDB” es DAX.

Trampa común: DynamoDB no es relacional aunque guarde “tablas”. Sus tablas no tienen esquema fijo ni JOIN, y no se consulta igual que con SQL.

120