Назад к вопросам
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:
- Планировщик (Scheduler) читает DAG-файлы и создает экземпляры задач для выполнения согласно расписанию.
- Задачи ставятся в очередь (через брокер, например, Celery или локальный исполнитель).
- Исполнители (Workers) берут задачи из очереди и запускают их.
- 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 управляет их запуском и мониторингом.