Вступить в клуб →
средняявопросОркестрация пайплайнов в Airflow

Публикация витрины отработала, несмотря на падение трансформации

В DAG три задачи, publish объявлена так:

publish = PythonOperator(
    task_id="publish",
    python_callable=swap_mart_to_bi,
    trigger_rule="all_done",
)

extract >> transform >> publish

trigger_rule поставили, чтобы «пайплайн всегда доводился до конца». Однажды transform упал на середине, и в BI уехала витрина с половиной данных.

Что здесь произошло?

  • all_done означает «после успешного завершения всех предшественников»; причина в другом — transform завершился с ошибкой, но пометил себя успешным.
  • all_done запускает задачу после завершения предшественников в любом статусе, включая падение, поэтому неполная витрина была опубликована; здесь нужен all_success.
  • trigger_rule на публикации не влияет: задача выполнилась потому, что у transform были заданы retries и после последней попытки он передал управление дальше.
  • При падении upstream Airflow всегда помечает downstream как skipped, поэтому publish выполниться не мог — витрину подменил какой-то другой процесс.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела