Ingesta de datos full‑stack en AWS (visión general)
Contexto y objetivo
Este pipeline ingiere datos a diario desde una API de terceros hacia AWS. El objetivo es mantener un flujo fiable y trazable desde el origen hasta datasets curados, sin exponer detalles internos.
Con “full‑stack” me refiero a que el proyecto cubre lógica de ingesta, modelado de datos, orquestación e infraestructura como código, es decir, el camino completo de extremo a extremo.
Arquitectura a alto nivel
El flujo es intencionalmente simple:
API → Lambda → S3 (Raw / Prepare / Refine) → PySpark → salidas curadas
Principios clave:
- Reproducibilidad: el mismo job corre en local y en producción.
- Trazabilidad: cada capa tiene un contrato claro.
- Separación de responsabilidades: ingesta, transformación y publicación son pasos independientes.
Desarrollo local (paridad con producción)
En local, el pipeline corre dentro de una imagen Docker basada en PySpark. Esto aporta:
- Entorno consistente entre máquinas.
- Comportamiento idéntico al de producción.
Correr en local permite validar transformaciones y cambios de esquema sin tocar datos reales.
Ingesta (API → Lambda)
La ingesta se maneja con una Lambda que consume la API y escribe en la zona Raw. A alto nivel:
- Extrae datos con paginación correcta.
- Respeta rate limits.
- Deja trazas para auditoría.
Este paso está diseñado para ser idempotente y seguro ante reintentos.
Capas de datos (Raw / Prepare / Refine)
El pipeline usa tres zonas:
- Raw: payloads sin modificar para trazabilidad.
- Prepare: datos limpios y normalizados con validaciones básicas.
- Refine: datasets listos para consumo.
La separación de capas facilita depuración y backfills.
Orquestación
El pipeline corre una vez al día con un scheduler. Si algo falla, los reintentos se manejan a nivel de job y los fallos quedan visibles en logs/alertas.
Infraestructura como código (Terraform)
Terraform define la infraestructura: almacenamiento, IAM, la Lambda y otros recursos AWS. Esto hace que:
- Los entornos sean reproducibles.
- Los cambios queden auditables.
- El pipeline sea portable a nuevas cuentas o regiones.
Seguridad y acceso (alto nivel)
Permisos con mínimo privilegio. Los secretos no están en el código y se gestionan fuera del repositorio.
Próximos pasos
En futuros posts puedo añadir:
- Observabilidad y alertas.
- Evolución de esquemas y calidad de datos.
- Ajustes de rendimiento para mayores volúmenes.