Sobes.tech
Назад к вопросам
Middle
5

Что такое DAG в Airflow, из чего он состоит и как Airflow исполняет DAG?

Компании, где спрашивали
FOM GROUP

Ответ от нейросети

sobes.tech AI

DAG (Directed Acyclic Graph) в Airflow — это направленный ацикличный граф, который описывает порядок выполнения задач (tasks) в рамках рабочего процесса (workflow).

Из чего состоит DAG:

  • Таски (Tasks) — отдельные единицы работы, например, запуск скрипта, запрос к базе, загрузка данных.
  • Зависимости между тасками — определяют порядок выполнения, указывая, какие задачи должны завершиться до начала следующих.
  • Параметры DAG — расписание (schedule_interval), стартовое время (start_date), настройки повторов и т.д.

Как Airflow исполняет DAG:

  1. Планировщик (Scheduler) читает DAG-файлы и создает экземпляры задач для выполнения согласно расписанию.
  2. Задачи ставятся в очередь (через брокер, например, Celery или локальный исполнитель).
  3. Исполнители (Workers) берут задачи из очереди и запускают их.
  4. Airflow отслеживает статус выполнения задач, учитывая зависимости, и запускает последующие задачи, когда предыдущие успешно завершены.

Пример простого DAG на Python:

from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime

default_args = {'start_date': datetime(2024, 1, 1)}

dag = DAG('example_dag', default_args=default_args, schedule_interval='@daily')

t1 = BashOperator(task_id='print_date', bash_command='date', dag=dag)
t2 = BashOperator(task_id='sleep', bash_command='sleep 5', dag=dag)

t1 >> t2  # t2 зависит от успешного выполнения t1

Таким образом, DAG описывает структуру и порядок выполнения задач, а Airflow управляет их запуском и мониторингом.