Sobes.tech
Middle

Какво е DAG в Airflow?

sobes.tech AI

Отговор от AI

DAG (Directed Acyclic Graph) в Apache Airflow е структура, която описва последователността на задачите (tasks) и техните зависимости под формата на насочен ацикличен граф.

Всяка върхова точка на графа представлява задача, а ръбовете показват реда на изпълнение: задачата B може да започне само след успешно завършване на задачата A, ако между тях има ръб от A към B.

Основните характеристики на DAG в Airflow:

  • Насочен — задачите следват определена посока, отразявайки потока на данни или процеси.
  • Ацикличен — няма цикли, за да се избегнат безкрайни повторения.

Пример за прост DAG на Python в Airflow:

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

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

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

# Определяне на задачите
start = BashOperator(task_id='start', bash_command='echo Start', dag=dag)
process = BashOperator(task_id='process', bash_command='echo Processing', dag=dag)
end = BashOperator(task_id='end', bash_command='echo End', dag=dag)

# Определяне на зависимостите
start >> process >> end

По този начин, DAG в Airflow е начин за описание и автоматизация на сложни работни процеси с ясно зададен ред на изпълнение.