Sobes.tech
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.