Objetivo
Combinar ingesta, validación, carga y transformación con estados claros.
Explicación
Un pipeline productivo necesita entradas definidas, pasos reejecutables, logs, tests y una salida verificable. Separa extracción de transformación para poder aislar fallos. Los pipelines reales fallan, se reejecutan y reciben datos tardíos. Por eso la práctica no termina cuando “funciona una vez”: debes pensar en idempotencia, reconciliación, registros inválidos y evidencia suficiente para diagnosticar un fallo sin adivinar. Para trabajar Pipeline reproducible end-to-end de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: Tienes un run con conteos, errores y artefactos de salida. La verificación principal será: Cada paso deja evidencia y un fallo impide publicar marts inconsistentes. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.
Contexto profesional
Los pipelines reales fallan, se reejecutan y reciben datos tardíos. Por eso la práctica no termina cuando “funciona una vez”: debes pensar en idempotencia, reconciliación, registros inválidos y evidencia suficiente para diagnosticar un fallo sin adivinar.
Ejemplo real
extract → validate → load_raw → transform → test → publish
Archivos o datos de entrada
- data/ecommerce_orders.csv
Práctica guiada
Ejecuta ingest_validate.py sobre orders.
Laboratorio paso a paso
- Prepara el entorno y localiza los datos/archivos de entrada: data/ecommerce_orders.csv. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
- Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «Pipeline reproducible end-to-end».
- Ejecuta la práctica guiada: Ejecuta ingest_validate.py sobre orders. Documenta el comando, consulta o acción exacta y el resultado obtenido.
- Resuelve el reto sin mirar la solución: Modifica un archivo y registra cómo detectarías si ya fue procesado. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
- Compara tu resultado con el criterio esperado: Tienes un run con conteos, errores y artefactos de salida. Después ejecuta la comprobación: Cada paso deja evidencia y un fallo impide publicar marts inconsistentes.
- Provoca deliberadamente un caso problemático relacionado con este error frecuente: Publicar aunque fallen tests convierte un error de datos en error de negocio.. Comprueba que sabes detectarlo y corregirlo.
Reto sin ayuda
Modifica un archivo y registra cómo detectarías si ya fue procesado.
Resultado esperado
Tienes un run con conteos, errores y artefactos de salida.
Cómo verificarlo
Cada paso deja evidencia y un fallo impide publicar marts inconsistentes.
Checklist de validación
- El resultado cumple: Tienes un run con conteos, errores y artefactos de salida.
- Has ejecutado esta verificación y puedes explicar el resultado: Cada paso deja evidencia y un fallo impide publicar marts inconsistentes.
- Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
- Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica
Usa un run_id y checksums si necesitas detectar archivos repetidos.
Solución paso a paso
1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: Registra nombre, hash, filas y timestamp de cada fichero. 3) Usa como referencia técnica el ejemplo de la lección (extract → validate → load_raw → transform → test → publish). 4) Ejecuta la verificación: Cada paso deja evidencia y un fallo impide publicar marts inconsistentes. 5) Compara con el resultado esperado: Tienes un run con conteos, errores y artefactos de salida. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «Publicar aunque fallen tests convierte un error de datos en error de negocio.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.
Errores frecuentes
- Publicar aunque fallen tests convierte un error de datos en error de negocio.
Qué debes recordar
Un pipeline fiable puede reejecutarse, detectar errores y explicar qué hizo.
Preguntas de entrevista
- ¿Cómo harías este proceso idempotente? Aplícalo concretamente a «Pipeline reproducible end-to-end».
- ¿Qué registrarías para poder reanudar o investigar una ejecución fallida? Explica qué evidencia enseñarías al revisor.
Siguiente paso
dbt automatizará la transformación y tests.
Recursos de esta lección
Preparando contenido…
Quiz de la lección
¿Qué debe ocurrir si falla una validación crítica antes de publicar?