Un pipeline idempotente produce el mismo resultado tanto si lo ejecutas una vez como cinco para la misma ventana de entrada. Constrúyelo haciendo que cada ejecución sea dueña de una porción determinista de datos y luego reemplace esa porción en lugar de añadir a ella. Usa sobrescritura de partición o un merge sobre una clave estable, deriva la ventana del intervalo programado y no del reloj, y evita efectos secundarios que no se puedan repetir.
Por qué lo preguntan los entrevistadores
La idempotencia es la propiedad que hace seguros los reintentos, los rellenos históricos y la recuperación de incidentes, así que esta pregunta en realidad busca saber si has operado pipelines a las 3 de la mañana. Los entrevistadores quieren el patrón de borrar e insertar o de merge, el uso del intervalo de datos programado en lugar de now(), y conciencia de los efectos secundarios no repetibles como correos o escrituras a APIs externas.
Cómo estructurar tu respuesta
- Defínelo como ejecutar una o muchas veces con el mismo estado final.
- Da el mecanismo: sobrescribir una partición o hacer merge sobre una clave.
- Insiste en que la ventana temporal viene del schedule, no del reloj.
- Señala los efectos secundarios que rompen la idempotencia.
- Explica por qué esto vuelve triviales los rellenos históricos.
Ejemplo de respuesta
Significa que puedo reejecutar ahora mismo el job de ayer y acabar con exactamente la misma tabla que si hubiera corrido una sola vez y limpio. El patrón que uso es que cada ejecución es dueña de una partición, y la escritura es un reemplazo de esa partición en vez de un append. Así que el job del 2026-08-25 borra y reescribe la partición de esa fecha, o hace merge sobre una clave única, y ejecutarlo cuatro veces no cambia nada después de la primera. El detalle que pilla a la gente es el tiempo. Si tu job filtra por ahora menos un día, entonces una reejecución tres días más tarde procesa la ventana equivocada, así que el intervalo tiene que venir del data interval del orquestador y no del reloj dentro de la tarea. También vigilo los efectos secundarios, porque tuvimos un pipeline que mandaba un correo resumen al final y un reintento hizo que finanzas recibiera el mismo informe dos veces. Movimos la notificación a una tarea aparte con su propia clave de deduplicación. Una vez que todo es idempotente, rellenar el histórico es simplemente ejecutar un rango de fechas.
¿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
- ¿Cómo harías idempotente un pipeline que escribe en una API externa?
- ¿Cuál es la diferencia aquí entre idempotente y determinista?
- ¿Cómo manejas un origen que modifica el histórico de forma retroactiva?
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