Autor: Eduardo Martínez Agrelo
Bienvenidos al segundo laboratorio de vuestro camino en la ingesta con Cloud Functions. En este módulo, sentaremos las bases de la extracción serverless. No se trata solo de consultar una API de forma manual, sino de transformar flujos externos de información en archivos almacenados de manera estructurada. Utilizaremos Google Cloud para automatizar el primer canal de nuestra capa Bronze.
La Evolución: De Extracciones Manuales a Serverless
El procesamiento batch tradicional basado en servidores encendidos continuamente ha llegado a su límite en costes operativos. En entornos modernos basados en microservicios, la computación bajo demanda es la respuesta óptima:
- Limitaciones: Mantener infraestructura encendida 24/7 para lanzar scripts periódicos de extracción genera un gasto innecesario de recursos.
- La Solución: Funciones serverless ejecutadas bajo demanda permiten pagar únicamente por los segundos de cómputo consumidos durante la extracción.
La Estructura Raw: Extracción, Particionado y Almacenamiento
Para asegurar que nuestra capa Bronze sea un registro fiel e histórico, la función ejecutará tres pasos lógicos:
Petición GET (API) + Partición Temporal (ingested_at=YYYYMMDD) + Escritura JSON (GCS)
Aprenderemos que un flujo sin particionamiento lógico es costoso de consultar en el futuro; por ello, estructuraremos de forma rigurosa la ruta en Cloud Storage para optimizar los procesos de transformación posteriores.
Infraestructura Serverless con Terraform
En ingeniería de datos, el empaquetado y despliegue del código de extracción debe estar automatizado. No subimos el código manualmente desde la consola; utilizamos Terraform para comprimir, almacenar y desplegar la Cloud Function junto con sus dependencias:
- Fuentes: Crearemos un bucket en Cloud Storage para el código ZIP y asociaremos las variables en Terraform de forma limpia.
- Seguridad: Configuraremos una Cuenta de Servicio dedicada con el rol restrictivo de escritor para proteger el bucket analítico.
Implementación práctica
En este laboratorio práctico, codificarás el script de extracción en Python. Crearemos los archivos `main.py` y el de
dependencias requirements.txt que interactuarán con la API externa, empaquetándolos y desplegándolos
mediante comandos de infraestructura para detonar tu primer pipeline asíncrono.
Conclusión: El primer flujo de ingesta
Has completado con éxito tu primer pipeline de extracción serverless. Has aprendido a procesar datos de una API externa e inyectarlos con metadatos de tiempo en tu Data Lake sin necesidad de encender o mantener servidores. Ya tienes tus primeros archivos JSON de la capa Bronze listos; el siguiente reto es configurar la replicación en tiempo real desde bases de datos relacionales NoSQL.