Un paso del pipeline falló a medias y se volvió a ejecutar, y ahora la tabla de entrenamiento tiene filas duplicadas. ¿Qué principio de diseño lo evita?
Opciones
- No volver a ejecutar nunca los pasos que fallan
- Añadir más workers
- Hacer los pasos idempotentes: ejecutar un paso dos veces da el mismo resultado, por ejemplo sobrescribiendo una partición por fecha en lugar de añadir a ciegas (Opción correcta)
- Guardar la tabla en otro formato
Respuesta
Hacer los pasos idempotentes: ejecutar un paso dos veces da el mismo resultado, por ejemplo sobrescribiendo una partición por fecha en lugar de añadir a ciegas
Por qué
Los fallos y los reintentos son normales en los pipelines. Si un paso añade filas, un reintento las duplica.
Un paso idempotente escribe su salida de modo que repetirlo reemplaza el mismo resultado: sobrescribe una partición con la fecha de ejecución como clave, o hace un upsert por una clave única.
Esto también hace seguros los backfills (volver a ejecutar fechas pasadas).
Recuerda
Los pasos idempotentes hacen seguros los reintentos y los backfills.