Sobes.tech
Middle

Mi az a DAG az Airflow-ben?

sobes.tech MI

Válasz az MI-től

Az Apache Airflow-ban az DAG (Directed Acyclic Graph) egy olyan struktúra, amely a feladatok (tasks) sorrendjét és függőségeiket írja le egy irányított ciklusmentes gráf formájában.

A gráf minden csúcsa egy feladatot jelöl, és az élek mutatják a végrehajtási sorrendet: az B feladat csak akkor kezdődhet el, miután az A feladat sikeresen befejeződött, ha van egy él A-ból B-be.

A DAG fő jellemzői az Airflow-ban:

  • Irányított — a feladatok egy meghatározott irányban haladnak, tükrözve az adat- vagy folyamatáramlást.
  • Ciklusmentes — nincsenek ciklusok, hogy elkerüljük a végtelen ismétléseket.

Egyszerű DAG példája Pythonban az Airflow-ban:

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

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

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

# Feladatok definiálása
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)

# Függőségek meghatározása
start >> process >> end

Így az Airflow-ban a DAG egy módja annak, hogy összetett munkafolyamatokat írjunk le és automatizáljunk, egyértelműen meghatározott végrehajtási sorrenddel.