GuíaBásico
Guía de Python para Data Engineering
Continúa directo desde `data-engineering-foundations-guide`: mismo caso de Kiosko, mismo pipeline, mismos datos de `orders` y `events` — lo que cambia es cómo está escrito el código que los procesa. Esta guía toma el script plano de foundations y lo convierte, módulo a módulo, en un paquete Python de producción: empaquetado con `uv` (`pyproject.toml`, layout `src/`, `uv.lock`), tests con `pytest` sobre cada función del pipeline, logging estructurado en JSON en vez de `print`, reintentos deterministas con `tenacity` para fallas transitorias, y DuckDB y Polars a fondo como los dos motores de transformación diaria que reemplazan los loops de Python puro y `sqlite3` de foundations. Nunca se usa pandas. Cierra con un capstone que ensambla el paquete completo — instalable, testeado, logueado, resiliente — y compara las tres implementaciones de la misma transformación (loop en Python, SQL con DuckDB, `LazyFrame` con Polars) para probar que producen exactamente el mismo resultado.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Sí
- certificado
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Convertir un script plano en un paquete instalable con `uv`: `pyproject.toml`, layout `src/`, `uv.lock`, y `uv run` como forma de ejecutarlo
- Escribir tests con `pytest` (fixtures, parametrize, arrange-act-assert) sobre las funciones de extracción, transformación y calidad heredadas de foundations
- Reemplazar cada `print()` por logging estructurado en JSON con contexto (`run_id`, `partition_date`) usando el módulo `logging` y `structlog`
- Distinguir errores que deben reintentarse de errores que deben ir a cuarentena, e implementar reintentos deterministas con `tenacity` (backoff, jitter, cuándo rendirse), probados sin usar `random`
- Usar DuckDB como motor de trabajo diario: SQL directo sobre Parquet/CSV, la API relacional en Python, y persistencia en archivo o en memoria
- Usar Polars a fondo: DataFrames eager vs `LazyFrame`, el plan de consulta optimizado con `.explain()`, expresiones, `group_by`/`agg` y joins
- Decidir con criterio cuándo usar DuckDB y cuándo Polars, y por qué ambos desplazaron a pandas en pipelines de producción
- Ensamblar un paquete final con entry point de línea de comandos, configuración sin valores hardcodeados, y un test de integración que prueba idempotencia con `assert`, no a ojo
Antes de empezar
Qué necesitas traer
Es para ti si...
- Quien ya completó `data-engineering-foundations-guide` (o tiene un pipeline equivalente escrito como script plano) y quiere llevarlo a nivel de producción
- Data engineers junior que escriben pipelines funcionales pero sin tests, sin logging estructurado y sin manejo de reintentos
- Developers que siguen usando pandas por costumbre y quieren migrar a DuckDB/Polars con criterio, no por moda
- Cualquiera que necesite entregar un pipeline de datos que un equipo de ingeniería real aceptaría revisar
Requisitos y materiales
- `data-engineering-foundations-guide` completada (o equivalente: el pipeline de extracción, calidad, transformación y carga de Kiosko funcionando como script plano)
- Python intermedio: funciones, manejo de excepciones, comprensión de listas
- Laptop propia con Python 3 y `uv` instalables — todo corre local y con $0
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Presentación de la guía: de un script que corres a un paquete que se instala
- Por qué un script no es lo mismo que un paquete
- uv y el toolchain moderno de Python
- pyproject.toml y el layout src/
- Convirtiendo el script de Kiosko en un paquete
- Imports, módulos y el archivo __init__
- Corriendo el paquete con uv run
- Mini-proyecto: el pipeline instalable de Kiosko
- Presentación del módulo: de "funciona en mi máquina" a "una máquina lo confirma"
- Por qué los pipelines de datos necesitan tests
- Escribiendo tu primer test con pytest
- Fixtures y los datos fijos de prueba de Kiosko
- Testeando los pasos de extracción y transformación
- Parametrize y testeando la compuerta de calidad
- Arrange-Act-Assert y la organización de una suite que crece
- Mini-proyecto: la suite de tests de Kiosko
- Presentación del módulo: de print() a un registro que una máquina puede leer
- Por qué print() no escala
- El módulo logging de Python: niveles y handlers
- Logs en JSON, y por qué una máquina los puede leer
- Agregando contexto con structlog
- Logging de una corrida del pipeline, de principio a fin
- Qué se loguea y qué nunca se loguea
- Mini-proyecto: el registro estructurado de una corrida completa de Kiosko
- Presentación del módulo: qué reintentar, qué poner en cuarentena
- Errores que conviene reintentar, y errores que nunca deberías reintentar
- Excepciones propias para un pipeline
- Reintentando con tenacity
- Backoff, jitter, y cuándo rendirse
- Cuarentena en vez de crash, revisitada
- Probando la lógica de reintento de forma determinista
- Mini-proyecto: el paso de carga resiliente de Kiosko
- Presentación del módulo: DuckDB como motor de trabajo diario
- DuckDB más allá de la vista previa
- Consultando Parquet y CSV directamente con SQL
- La API relacional y la persistencia
- Reemplazando joins de Python con SQL
- DuckDB y el ecosistema de Polars y Arrow
- Probando transformaciones SQL con pytest
- Mini-proyecto: la capa de transformación DuckDB de Kiosko
- Presentación del módulo: Polars, eager y lazy
- Por qué Polars desplazó a pandas en pipelines
- DataFrames eager: una primera mirada
- LazyFrames y el plan de consulta
- Expresiones, group_by y joins
- Escaneando Parquet y datos out-of-core
- Eligiendo DuckDB o Polars
- Mini-proyecto: la capa de transformación Polars de Kiosko
- Presentación del módulo: el paquete que se entrega
- Un entry point de línea de comandos para el pipeline
- Configuración sin valores hardcodeados
- Cableando logging, reintentos y motores juntos
- Un test de integración para el pipeline completo
- Probando idempotencia con un test, no con una corrida manual
- Qué le pediría un revisor de código todavía
- Mini-proyecto: el paquete entregable de Kiosko
- Presentación del módulo: el capstone de Kiosko
- El brief: Kiosko necesita un pipeline que un equipo pueda tomar
- Ensamblando el paquete completo, de punta a punta
- Corriendo la suite completa de tests
- Corriendo el pipeline con logs estructurados
- DuckDB vs Polars vs el script original
- Qué le falta todavía a Kiosko
- Mini-proyecto: el primer paquete de producción de Kiosko
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
Sí. Al terminar todas las lecciones se emite automáticamente, con un código verificable que puedes compartir en LinkedIn.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!