# Amazon DynamoDB

> Una base de datos clave-valor que responde en milisegundos por más que crezca la tabla.

- Nivel: Básico
- Temas: AWS
- URL: https://tidbit.legios.com.ar/es/amazon-dynamodb/
- En inglés: [Amazon DynamoDB](https://tidbit.legios.com.ar/amazon-dynamodb/)

**DynamoDB** es la base de datos NoSQL de AWS. En vez de tablas con filas y columnas unidas por SQL, guarda **ítems** (documentos parecidos a JSON) y los encuentra por una **clave** que elegís vos, como un id de usuario o un número de pedido. Buscar un ítem por clave tarda unos milisegundos, tenga la tabla mil ítems o mil millones.

No hay servidor que dimensionar: pagás por lectura, por escritura y por gigabyte guardado, y AWS reparte la tabla en tantas máquinas como haga falta. Es totalmente administrada, replicada en tres zonas de disponibilidad, y puede mantener copias vivas en otras Regiones. La trampa es que solo hace rápido lo que fue diseñada para hacer: traer ítems por clave. Una pregunta como 'todos los pedidos de más de 100 dólares de marzo' necesita un diseño de tabla muy pensado o directamente otra herramienta, como Amazon RDS o Amazon Athena.

Usos típicos: carritos de compra, sesiones y perfiles de usuario, rankings de juegos, el estado detrás de una app móvil. El propio sitio de ventas de Amazon se apoya en ella en sus días de más tráfico, que es más o menos la escala para la que fue construida.

## Una analogía

Un guardarropa. Entregás el abrigo, te dan un ticket con número, y después lo recuperás al instante mostrando el ticket. Pedirle al encargado 'todos los abrigos azules' no es para lo que sirve el sistema.

## Para quedarse

- Accedés a los ítems por una clave que elegís; diseñá la clave según las preguntas que vas a hacer.
- Precio serverless: por lectura, por escritura y por gigabyte, sin ninguna instancia que administrar.
- Las lecturas tardan pocos milisegundos sin importar el tamaño de la tabla.
- Ideal para carritos, sesiones y perfiles; mala opción para reportes a medida.

## Para seguir leyendo

- [¿Qué es Amazon DynamoDB? (documentación oficial)](https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/Introduction.html)
- [Amazon DynamoDB](https://aws.amazon.com/es/dynamodb/)

## Términos relacionados

- [NoSQL](https://tidbit.legios.com.ar/es/nosql/): Bases de datos que guardan la información en formas distintas a tablas de columnas fijas.
- [SQL](https://tidbit.legios.com.ar/es/sql/): El lenguaje para hacerle preguntas a una base de datos.
- [JSON](https://tidbit.legios.com.ar/es/json/): El formato de texto con el que los programas se pasan datos estructurados.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Regiones y zonas de disponibilidad](https://tidbit.legios.com.ar/es/regions-and-availability-zones/): Dónde vive AWS físicamente: ciudades del mundo, cada una con varios centros de datos.
- [Amazon RDS](https://tidbit.legios.com.ar/es/amazon-rds/): Una base de datos relacional lista para usar, que AWS mantiene parchada y respaldada.
- [Amazon Athena](https://tidbit.legios.com.ar/es/amazon-athena/): Corré SQL directo sobre archivos guardados en S3, sin armar ninguna base de datos.
- [Amazon](https://tidbit.legios.com.ar/es/amazon/): Una tienda online con su propia red de envíos, y la empresa que maneja AWS.
