Un buen DAG tiene tareas pequeñas e idempotentes con dependencias claras, deriva su ventana temporal del data interval en vez del reloj, y mantiene la lógica pesada fuera del fichero del DAG porque ese fichero se parsea constantemente. Evita pasar datos grandes por XCom, evita sensores bloqueantes largos que ocupan slots de worker, y configura reintentos, timeouts y alertas sensatas en las tareas que importan.
Por qué lo preguntan los entrevistadores
Los bugs de orquestación provocan problemas silenciosos de corrección, no solo fallos, así que los entrevistadores usan esto para comprobar experiencia práctica. Quieren higiene en el código de nivel superior (un fichero de DAG lento degrada todo el scheduler), el punto del data interval que hace correctas las reejecuciones, y conciencia del agotamiento de recursos por sensores y payloads de XCom demasiado grandes.
Cómo estructurar tu respuesta
- Defiende tareas pequeñas, idempotentes y reintentables de forma independiente.
- Explica por qué la ventana temporal debe venir del data interval.
- Avisa del código pesado en el nivel superior del fichero del DAG.
- Cubre los límites de tamaño de XCom y pasar referencias en lugar de payloads.
- Configura reintentos, timeouts, SLAs y alertas con sentido.
Ejemplo de respuesta
Las dos cosas que más me importan son la granularidad de las tareas y la idempotencia. Las tareas deben ser lo bastante pequeñas para que un fallo sea barato de reintentar y lo bastante específicas para que el fallo te diga qué se rompió, y todas deben ser seguras de reejecutar. Luego, la ventana temporal tiene que venir del data interval que pasa Airflow, nunca de un datetime.now dentro de la tarea, o si no una reejecución del martes pasado procesa los datos de hoy y obtienes una respuesta sutilmente equivocada en lugar de un error. En revisión, lo que más señalo es código caro en el nivel superior del fichero del DAG. Ese fichero se parsea a intervalos cortos, así que una llamada a una API o una consulta a base de datos fuera de la función de la tarea corre constantemente y degrada todo el scheduler; he visto que eso solo añadía minutos de latencia de planificación en todo un despliegue. También reviso el uso de XCom, ya que es una tabla de metadatos y no un transporte de datos, así que pasa una ruta de S3 y no un dataframe.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Qué es un operador diferible y qué problema resuelve?
- ¿Cómo manejarías un DAG que necesita procesar un número variable de ficheros?
- ¿Cómo pruebas un DAG antes de que llegue a producción?
Más preguntas para Ingeniero de datos
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas