Вступ до Apache Airflow на Python
Mike Metzger
Data Engineer




all_success — усі попередні завдання успішні, без пропусківall_failed — усі попередні завдання з помилкоюall_done — усі попередні завершені, незалежно від результатуone_failed — щонайменше одне завдання з помилкоюone_success — щонайменше одне завдання успішнеnone_failed — усі попередні успішні або пропущеніfrom 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 — параметр завдання, що визначає, скільки разів Airflow має повторити збійне завдання перед позначенням як невдалеretry_delay — параметр завдання з timedelta, що задає паузу між спробами@task(
trigger_rule=TriggerRule.ONE_SUCCESS,
retries=3,
retry_delay=timedelta(minutes=5)
)
from airflow.providers.standard.operators.trigger_dagrun
import TriggerDagRunOperatortrigger_dag_id — має збігатися з dag_idwait_for_completion — блокує інші завдання до завершенняpoke_interval — як часто перевірятиconf — дані для передачі дочірньому Dagtrigger_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 # Спочатку виконайте перше завдання, потім запустіть дочірній Dag
trigger_child >> cleanup # Виконайте прибирання після завершення дочірнього Dag
Вступ до Apache Airflow на Python