Cloud Composer: Ingesta a BigQuery (El Patrón ELT)
Autor: Eduardo Martínez Agrelo
Tener datos en un Data Lake es un gran primer paso, pero los archivos CSV "tirados" en un bucket no son útiles para el análisis de negocio. Para que los analistas puedan extraer valor, necesitamos llevar esos datos a un entorno estructurado y potente. En Google Cloud, ese lugar es BigQuery, y el proceso para llevarlos allí se conoce como la carga del Patrón ELT.
¿Qué es el Patrón ELT?
A diferencia del tradicional ETL, el modelo ELT (Extract, Load, Transform) aprovecha la potencia de cálculo del Data Warehouse moderno:
- Extract & Load: Los datos se extraen de la fuente y se cargan directamente en el destino en su formato original o con mínimas transformaciones.
- Transform: Una vez dentro de BigQuery, utilizamos SQL para limpiar, agregar y modelar los datos, aprovechando la escalabilidad masiva de Google.
El GCSToBigQueryOperator
Airflow facilita esta tarea mediante operadores especializados que se comunican directamente con las APIs de Google Cloud sin pasar los datos por la memoria del orquestador:
load_csv = GCSToBigQueryOperator(task_id='gcs_to_bq', bucket='data-lake')
Aprenderemos a configurar parámetros críticos como el schema_fields para definir la estructura de la
tabla, y el write_disposition, que determina si queremos sobrescribir los datos existentes o añadir
nuevos registros al final de la tabla.
Airflow Orquestador, No Procesador
Es un error común intentar leer archivos pesados con Python dentro de un DAG. Es vital entender que Airflow es el director de orquesta:
- Eficiencia: Airflow simplemente da la orden a BigQuery para que absorba el archivo desde GCS.
- Escalabilidad: Este método permite procesar terabytes de datos con la misma facilidad que unos pocos kilobytes, ya que el esfuerzo pesado lo realiza el motor de almacenamiento de Google.
Implementación práctica
En este laboratorio, primero utilizaremos Terraform para crear nuestro Dataset en BigQuery de forma automática. Posteriormente, desplegaremos un DAG que detectará nuestros archivos de ventas y los cargará en una tabla "raw". Al finalizar, entraremos en la consola de BigQuery para ejecutar nuestras primeras consultas SQL sobre los datos que acabamos de ingestar, verificando que los tipos de datos (enteros, cadenas y flotantes) se hayan mapeado correctamente.
Conclusión: Tu primer Warehouse funcional
Has completado el ciclo de ingesta batch profesional. Tus datos ya no son archivos inertes en un bucket; ahora residen en una base de datos analítica de clase mundial. Sin embargo, en producción los datos suelen venir con errores. El siguiente paso es aprender a bifurcar nuestros pipelines para gestionar la calidad del dato mediante técnicas de Branching.