Cierre del módulo
¡Módulo 6 del #dezoomcamp terminado!
Procesar datos por lotes con Apache Spark me voló la cabeza.
De raw data a Parquet particionado, optimizando recursos locales.
#DataEngineeringZoomcamp
Monitoreo con la Web UI
Hoy exploré la Web UI de Spark (por defecto en el localhost:4040) para monitorear Jobs, Stages y Tasks.
Entender el DAG es clave para optimizar.
#dezoomcamp #DataEngineeringZoomcamp
Flexibilidad (API vs SQL)
Una de las cosas que más me gustan de Spark es su flexibilidad. Hoy resolví queries usando tanto la DataFrame API (F.to_date) como vistas temporales con Spark SQL.
#dezoomcamp #DataEngineeringZoomcamp
Arrancando el módulo 6 de Batch Processing del #dezoomcamp.
El setup de Spark 4.x en local es mil veces más fácil ahora. Cero peleas con SPARK_HOME, todo gestionado rapidísimo con uv y Python.
#DataEngineeringZoomcamp
Week 6 Spark Module of #DataEngineeringZoomcamp completed! 🛠️
Bridging legal logic with large-scale batch processing.
🔹 PySpark & DataFrames
🔹 Parquet optimization
🔹 AWS EC2 deployment
🔹 Spark UI monitoring (4040)
Solution: github.com/CodingJhames...
Course: github.com/DataTalksClu...
El workshop del #dezoomcamp no solo fue extracción. Vimos cómo usar dlt con cuadernos reactivos como Marimo y la librería Ibis para crear dashboards interactivos sin escribir SQL pesado. De la API al reporte dinámico en tiempo récord.
#DataEngineeringZoomcamp
¿JSON anidados? No hay problema. En el workshop de dlt del #dezoomcamp vimos cómo hace el "shredding" automático, aplanando los datos complejos en tablas relacionales listas para DuckDB. Magia pura para mantener la integridad de los datos.
#DataEngineeringZoomcamp
En el workshop del #dezoomcamp aprendí a usar dlt para ingestar datos desde APIs REST hacia DuckDB. Lo más increíble fue usar asistentes de IA (Cursor + MCP) para estructurar la tubería en minutos. ¡La automatización de la ingesta de datos está en otro nivel!
#DataEngineeringZoomcamp
El comando bruin lineage permite visualizar el DAG completo del proyecto. Al declarar explícitamente la propiedad depends en la configuración de cada asset, el orquestador resuelve y garantiza el orden secuencial estricto de ejecución. #dezoomcamp #DataEngineeringZoomcamp
Para cargas incrementales idempotentes, Bruin implementa la estrategia time_interval. Al definir rangos temporales, el motor ejecuta un DELETE filtrado por la llave incremental antes del INSERT, previniendo duplicidad de registros. #dezoomcamp #DataEngineeringZoomcamp
Módulo 5 del #DataEngineeringZoomcamp sobre plataformas de datos. Aprendiendo a usar Bruin, una herramienta end-to-end que unifica ingesta, transformación, orquestación, calidad de datos y linaje en un solo entorno de proyecto. #dezoomcamp #DataTalksClub
Calidad de datos (Testing) con dbt Tests.
Podemos validar automáticamente:
🔹 Unicidad (unique)
🔹 Valores no nulos (not_null)
🔹 Integridad referencial (relationships)
🔹 Reglas de negocio custom (singular tests)
Si el test falla, el pipeline se detiene.
#dezoomcamp #DataEngineeringZoomcamp
Analytics Engineering
Es el eslabón perdido entre la ingeniería de datos y el análisis.
Con dbt (Data Build Tool), dejamos de escribir queries sueltas y aplicamos prácticas de ingeniería de software al SQL: control de versiones, testing automatizado y CI/CD.
#dezoomcamp #DataEngineeringZoomcamp
Podado de datos
Concepto técnico detrás del ahorro de costos
Si particionamos por fecha y hacemos WHERE fecha = 'hoy', BigQuery ignora físicamente todos los archivos de ayer y mañana.
Pasamos de escanear 1TB a 100MB en una sola línea de código.
#dezoomcamp #DataEngineeringZoomcamp
¿Machine Learning en SQL?
Con BigQuery ML en el #DataEngineeringZoomcamp de #DataTalksClub aprendimos a crear, entrenar y ejecutar modelos directamente en el Data Warehouse.
No tuvimos que mover terabytes de datos a Python.
Podemos entrenar un modelo con CREATE MODEL y predecir con ML.PREDICT.
¿Por que evitar usar el SELECT *?
Al ser una base de datos columnar, leer todas las columnas dispara los costos innecesariamente
✅ Selecciona solo las columnas que necesitas
✅ Filtra siempre primero por tu columna particionada
Tu presupuesto te lo agradecerá
#dezoomcamp #DataEngineeringZoomcamp
Subimos algunos puestos pero los primeros lugares están ampliando su ventaja.
#DataEngineeringZoomcamp #DataTalksClub #dezoomcamp
ELT (extract-load-transform)
Proceso que aprendimos para manejar datos:
1. Extraemos datos
2. Los cargamos en nuestro Data Lake (repositorio/bucket para datos crudos)
3. Transformamos con SQL (BigQuery)
Todo orquestado por @kestra.io
#dezoomcamp #DataEngineeringZoomcamp #DataTalksClub #Kestra
IA en el curso #DataEngineeringZoomcamp
1. Generación de código usando Copilot
2. Ingeniería de contexto. Copilot tiene acceso a la estructura de nuestro proyecto por lo que facilita la corrección de errores y actializaciones
3. RAG para "leer" documentación
#dezoomcamp #DataTalksClub @kestra.io
Imagen hecha con IA
Data Pipeline (tubería de datos)
Serie de procesos automatizados que mueven datos desde un origen hasta un destino.
#dezoomcamp #DataEngineeringZoomcamp #DataTalksClub
Kestra
Es nuestro "director de orquesta" que nos ayudará a que todas nuestras herramientas y plataformas (python, código, bases de datos, cloud, etc.) trabajen juntas.
#dezoomcamp #DataEngineeringZoomcamp #DataTalksClub #Kestra
Entendí el "Workflow Orchestration" así:
Usamos YAML (el lenguaje) para escribir un Workflow (la secuencia de tareas) dentro de Kestra (la herramienta), la cual se encarga del Workflow Orchestration (ejecutarlo y gestionarlo).
#dezoomcamp #DataEngineeringZoomcamp #DataTalksClub
Llevaba 3 semanas con este error en GCP pero al final se resolvió con dos simples comandos en el Cloud Shell
#dezoomcamp #DataEngineeringZoomcamp
No esperaba estar en los primeros puestos pero a ver hasta donde llegamos en el #DataEngineeringZoomcamp de #DataTalksClub
#dezoomcamp