DAG ацикличен, чтобы зависимости имели допустимый порядок выполнения. Цикл делает ожидания взаимными, и Airflow отклоняет такой граф при проверке.
Airflow: ацикличность DAG и первый запуск
DAG ацикличен, чтобы зависимости имели допустимый порядок выполнения. Цикл делает ожидания взаимными, и Airflow отклоняет такой граф при проверке.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Условие
- Почему граф должен быть ацикличным?
- Что произойдет, если появится цикл?
- Какие ключевые параметры DAG (dag_id, schedule_interval, start_date, default_args) вы знаете и для чего они нужны?
- Как Airflow понимает, когда запускать DAG в первый раз? (Важность start_date + schedule_interval)
Ответ
DAG ацикличен, чтобы зависимости имели допустимый порядок выполнения. Цикл делает ожидания взаимными, и Airflow отклоняет такой граф при проверке.
dag_id идентифицирует граф, start_date задаёт нижнюю границу планирования, default_args — общие параметры задач. В новых версиях используют schedule; schedule_interval относится к прежнему интерфейсу.
Первый запуск зависит от расписания, timetable, start_date и catchup. Для модели интервалов данных запуск обычно появляется после завершения первого подходящего интервала, а не просто в момент start_date. При schedule=None автоматического запуска нет. Используйте фиксированную дату и явный часовой пояс.