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.