Cómo omitir tareas al activar un dag programáticamente

Sep 16 2020

¿Hay alguna manera de activar un dag programáticamente (por ejemplo, a través de API) pero omitir las primeras tareas en el dag?

Respuestas

1 y2k-shubham Sep 16 2020 at 13:11

¿Hay alguna forma de activar un dag programáticamente ...?

Soy consciente de 3 formas

1. A través de un DAG de flujo de aire en sí

Usar TriggerDagRunOperator

2. A través de la RESTAPI de Airflow

POST /api/experimental/dags/<DAG_ID>/dag_runs

Crea un dag_run para un dag id determinado.

3. Flujos de aire CLI

Usar trigger_dagcomando


..pero omitir las primeras tareas en el dag?

Independientemente de si el DAG se activó mediante programación, manualmente a través de la CLI o la interfaz de usuario de Airflow, o por el programador (horario / horario normal cron), los métodos para omitir tareas son los mismos

1.AirflowSkipException (cuando está utilizando PythonOperatoro cualquier operador personalizado)

2. BranchPythonOperatoroShortCircuitOperator (estos son operadores dedicados para crear flujos de trabajo condicionales)

Referencia: Programar trabajo de flujo de aire quincenalmente

  • Por favor, comprenda que NO PUEDE omitir un taskde una manera DagRunasí: para omitir tareas de manera programática, la lógica de omitir debe integrarse en las tareas / flujo de trabajo en sí (en el momento de construir / definir el dag)

  • Pero, por supuesto, si desea hacerlo manualmente, puede hacerlo a través de la propia interfaz de usuario de Airflow (cuando se está ejecutando un DAG) como se indica aquí.