Middle
Cos'è un DAG in Airflow?
sobes.tech AI
Risposta dell'AI
Un DAG (Directed Acyclic Graph) in Apache Airflow è una struttura che descrive la sequenza di task e le loro dipendenze sotto forma di un grafo diretto aciclico.
Ogni nodo del grafo rappresenta un task, e gli archi indicano l’ordine di esecuzione: il task B può iniziare solo dopo che il task A è stato completato con successo, se esiste un arco da A a B.
Caratteristiche principali del DAG in Airflow:
- Orientato — i task seguono una direzione specifica, riflettendo il flusso di dati o processi.
- Acyclic — non ci sono cicli, per evitare ripetizioni infinite.
Esempio di un DAG semplice in Python in 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('esempio_dag', default_args=default_args, schedule_interval='@daily')
# Definizione dei task
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)
# Definizione delle dipendenze
start >> process >> end
In questo modo, il DAG in Airflow è un modo per descrivere e automatizzare processi di lavoro complessi con un ordine di esecuzione chiaramente definito.