Saltar al contenido

Jobs avanzado

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar progreso

Lección 5 de 5

Concurrency y queueing

Retries corrigen fallos transitorios de una tarea; repair runs reejecutan el subconjunto fallido tras corregir la causa sin repetir trabajo exitoso.

17 min aprox.

Detalles

Lakeflow Jobs avanzado: control flow y repairs

Orquesta decisiones, bucles y recuperaciones sin convertir el DAG en lógica opaca.

Reto observable

Diseña control flow acotado y repara únicamente el subconjunto fallido, demostrando idempotencia y preservación de tareas ya correctas.

Al terminar podrás
  • Usar branching y for-each con límites
  • Aplicar retries y repairs correctamente
  • Transferir parámetros y task values
Prerrequisitos
m19
Última revisión
25 ago 2026
Nivel
Professional
Ruta relacionada
pipelines
Dominios blueprint
Debugging and Deploying · Lakeflow Jobs
Estado
Revisión editorial interna
Fuentes principales
Control the flow of tasks within Lakeflow Jobs · Databricks · Dynamic value references · Databricks
Reportar un error
05
Decisión de diseño

Concurrency y queueing

Retries corrigen fallos transitorios de una tarea; repair runs reejecutan el subconjunto fallido tras corregir la causa sin repetir trabajo exitoso.

Una retry policy limita intentos e intervalo y debe reservarse para fallos plausiblemente transitorios. Reintentar una violación de esquema determinista solo consume tiempo. Las tareas con efectos deben ser idempotentes porque tanto retry como repair pueden ejecutarlas de nuevo.

Un repair run mantiene el contexto del run original y permite reejecutar tareas fallidas o omitidas, con parámetros corregidos cuando corresponda. Antes de reparar se inspecciona error, input y versión; después se valida el resultado downstream. Una nueva ejecución completa es preferible si cambió el alcance o no puede garantizarse coherencia con tareas exitosas anteriores.

YAMLPolítica de retry limitada
task_key: ingest_partner_api
max_retries: 3
min_retry_interval_millis: 60000
retry_on_timeout: true
timeout_seconds: 1800
python_wheel_task:
  package_name: commerce
  entry_point: ingest_partner

El código debe escribir con una clave de petición o `MERGE`; tres reintentos de un append no idempotente pueden triplicar datos.

¿Por qué una tarea que soporta retries debe ser idempotente?

Profundiza

Un retry repite automáticamente una tarea ante un fallo que se presume transitorio; un repair run se inicia después para reejecutar tareas fallidas o omitidas y sus dependientes necesarios dentro de un run existente. Ninguno corrige lógica no idempotente. La política de retry especifica número, intervalo y, cuando aplica, backoff; debe ser corta para errores de red o capacidad recuperables y evitar tormentas sobre un servicio caído. Un error de schema, permiso o calidad determinista no mejora al repetir y consume tiempo de RTO. Repair conserva el contexto y parámetros del run original, por lo que es preferible a lanzar manualmente otro Job que pueda usar otra fecha. Antes de reparar se corrige la causa, se entiende qué outputs quedaron confirmados y se selecciona el mínimo subgrafo seguro. La publicación y los efectos externos necesitan claves que toleren repetición.

Retry

Nuevo intento automático de la misma tarea y contexto después de un fallo, sujeto a límites e intervalos configurados.

Recupera errores transitorios sin intervención, pero exige idempotencia y clasificación para no repetir fallos deterministas.
Repair run

Reanudación explícita de un run existente que reejecuta el subconjunto fallido o dependiente conservando su contexto original.

Reduce trabajo duplicado y mantiene la fecha y parámetros lógicos después de corregir una causa.
Backoff

Estrategia que aumenta el intervalo entre intentos, normalmente con aleatoriedad, para reducir presión sobre una dependencia degradada.

Evita tormentas coordinadas de reintentos y mejora probabilidad de recuperación de servicios con throttling.
Resumen

Puntos clave

  • Retry es automática y cercana al fallo; repair es una decisión sobre una ejecución existente.
  • No todos los errores son transitorios ni deben reintentarse.
  • Idempotencia permite reejecutar una tarea sin duplicar o retroceder estado.

Evita

  • Configurar retries ilimitados para un error de datos permanente y ocultar el incidente.
  • Reparar downstream con parámetros distintos sin verificar que los outputs upstream exitosos siguen siendo compatibles.

Vista de lectura · sin ejecución

Learn Databricks

Learn Databricks · commit 08c378c

README.md

Módulo 20

Contenido del módulo