Introdução ao Apache Airflow em Python
Mike Metzger
Data Engineer




all_success - Todas as tarefas anteriores concluíram com sucesso, sem skipsall_failed - Todas as tarefas anteriores falharamall_done - Todas as tarefas anteriores concluídas, qualquer que seja o resultadoone_failed - Pelo menos uma falhouone_success - Pelo menos uma teve sucessonone_failed - Todas as anteriores concluíram com sucesso ou foram puladasfrom airflow.utils.trigger_rule import TriggerRule@tasktrigger_rule=TriggerRule.<TriggerRule enum>@task(trigger_rule=TriggerRule.ALL_SUCCESS)
def run_if_everything_succeeds:
print('All previous tasks succeeded!')
retries - parâmetro que define quantas vezes o Airflow deve tentar novamente antes de marcar como falharetry_delay - aceita um timedelta com o tempo de espera entre tentativas@task(
trigger_rule=TriggerRule.ONE_SUCCESS,
retries=3,
retry_delay=timedelta(minutes=5)
)
from airflow.providers.standard.operators.trigger_dagrun
import TriggerDagRunOperatortrigger_dag_id - Deve corresponder ao dag_idwait_for_completion - Bloqueia tarefas seguintes até concluirpoke_interval - Com que frequência verificarconf - Dados passados ao DAG filhotrigger_child = TriggerDagRunOperator(
task_id="trigger_child_pipeline",
trigger_dag_id="child_pipeline_dag",
wait_for_completion=True,
poke_interval=30,
conf={
"source": "s3://my-bucket/raw/",
},
)
task1 >> trigger_child # Executa a primeira tarefa e então dispara o DAG filho
trigger_child >> cleanup # Executa limpeza após o DAG filho concluir
Introdução ao Apache Airflow em Python