Вопрос проверяет понимание основной концепции Airflow — DAG — и умение объяснить, как описываются workflow.
DAG в Airflow — это описание workflow в виде направленного ациклического графа. Он определяет задачи и зависимости между ними. DAG описывается кодом на Python. Airflow использует DAG, чтобы понимать порядок выполнения задач. Циклы в DAG запрещены.
DAG — это центральное понятие Airflow. Без него Airflow не знает, какие задачи существуют и в каком порядке их запускать.
DAG (Directed Acyclic Graph) — это направленный граф без циклов, который описывает задачи и зависимости между ними.
DAG включает в себя:
уникальное имя;
расписание запуска;
набор задач;
зависимости между задачами.
Пример идеи DAG:
extract >> transform >> load
Циклы запрещены, потому что:
невозможно определить начало выполнения;
задачи зависели бы друг от друга бесконечно.
Airflow проверяет DAG и не запустит его, если есть цикл.
Важно понимать:
DAG — это описание workflow;
задачи не выполняются при объявлении DAG;
выполнение происходит позже, по расписанию или вручную.
Это частая ошибка новичков.
Каждый запуск DAG:
называется DAG Run;
имеет логическую дату;
содержит набор Task Instance.
Это позволяет:
переигрывать прошлые запуски;
анализировать историю выполнения.
При проектировании DAG:
делайте задачи маленькими и независимыми;
избегайте сложной логики на уровне DAG-файла;
чётко описывайте зависимости.
DAG — это декларативное описание workflow в Airflow. Он задаёт структуру и порядок выполнения задач, но не отвечает за их реализацию.