🎯 Objetivo
Crear una tabla DynamoDB, insertar datos, hacer consultas básicas y entender cómo funciona esta base NoSQL.
1. ¿Qué es DynamoDB?
-
Base de datos NoSQL totalmente gestionada por AWS.
-
Almacena datos en formato clave-valor o documentos.
-
Altamente escalable y con baja latencia.
-
No requiere administración de servidores.
2. Preparación
-
Necesitas una cuenta de AWS. Puedes usar la capa gratuita (Free Tier).
-
Instala y configura AWS CLI (opcional para consola).
-
También puedes usar AWS Management Console para todo sin código.
3. Crear tabla DynamoDB
Desde AWS Console:
-
Ingresa a AWS Management Console.
-
Busca y selecciona DynamoDB.
-
Haz clic en Create table.
-
Pon un nombre, por ejemplo:
Usuarios. -
Define la clave primaria (Partition key), por ejemplo:
UsuarioID(tipo String). -
Puedes agregar una clave de ordenación (Sort key) si quieres.
-
Selecciona la configuración por defecto para capacidad (on-demand recomendado para comenzar).
-
Crea la tabla.
4. Insertar datos (Item)
En la tabla creada:
-
Ve a la pestaña Items.
-
Haz clic en Create item.
-
Agrega datos, ejemplo:
-
Guarda el ítem.
5. Consulta básica
Puedes buscar un ítem por su clave primaria:
-
En la pestaña Explore items, usa el filtro para buscar
UsuarioID = user123. -
DynamoDB te mostrará el ítem correspondiente.
6. Operaciones básicas con AWS CLI (opcional)
-
Insertar un ítem:
-
Obtener un ítem:
7. Conceptos importantes
| Concepto | Descripción |
|---|---|
| Partition Key | Clave principal para particionar datos. |
| Sort Key | Clave para ordenar o agrupar ítems dentro de una partición. |
| Item | Registro o fila en DynamoDB. |
| Tabla | Contenedor de ítems. |
8. Ventajas de DynamoDB
-
Escala automáticamente según demanda.
-
Muy rápida para lectura y escritura.
-
Sin necesidad de administrar servidores ni configuraciones complejas.
-
Integración nativa con otros servicios AWS.
📝 Actividad práctica
-
Crea una tabla
ProductosconProductoIDcomo clave primaria. -
Inserta 3 productos con nombre, precio y categoría.
-
Busca un producto por su
ProductoID. -
Prueba actualizar un producto desde la consola o AWS CLI.
Consultas avanzadas con DynamoDB e integración con Python
1. Consultas avanzadas en DynamoDB
📌 Diferencia clave entre GetItem y Query
-
GetItem: Busca un ítem específico usando la clave primaria exacta (Partition key y Sort key si existe).
-
Query: Busca uno o más ítems que compartan la misma Partition key, con posibilidad de filtrar o usar la Sort key para rangos.
📌 Operaciones avanzadas con Query
-
Filtrar por Sort Key: Por ejemplo, buscar productos con
ProductoIDigual a «123» y fecha entre X e Y. -
Uso de filtros: Filtrar resultados según atributos no clave.
-
Scan: Recorre toda la tabla (costoso, evitar si se puede).
Ejemplo: Query con filtro en consola
2. Integrar DynamoDB con Python (boto3)
Paso 1: Instalar boto3
Paso 2: Configurar credenciales AWS
-
Configura tus credenciales con
aws configureo usando variables de entorno. -
Necesitas Access Key ID y Secret Access Key de un usuario con permisos a DynamoDB.
Paso 3: Código básico para conectar y operar
Nota importante sobre el modelo de datos
Para usar query con KeyConditionExpression, el atributo usado debe ser parte de la clave primaria (Partition key o Sort key). Para filtrar por atributos que no son clave, se usa FilterExpression, pero filtrar no reduce el costo de lectura.
3. Ejercicio práctico
-
Crea una tabla
ProductosconCategoriacomo Partition key yProductoIDcomo Sort key. -
Inserta varios productos en distintas categorías con distintos precios.
-
Haz una consulta para obtener todos los productos de una categoría específica.
-
Filtra productos que cuesten más de cierto valor.
-
Actualiza un producto desde Python.