Vai al contenuto principale
BlogScheduler e gestione del tempo in Apache Airflow
Apache AirflowApache per i Big Data

Scheduler e gestione del tempo in Apache Airflow

3 Nov 20245 min lettura
SC

Stanislao Corvino

Dottore Commercialista · Data Evangelist

In Apache Airflow, lo Scheduler è il componente responsabile della pianificazione e dell’esecuzione dei DAG. Gestire correttamente lo scheduler ti aiuterà a orchestrare i flussi di lavoro in modo efficiente.

Come funziona lo Scheduler

Lo Scheduler monitora la cartella dei DAG, analizza le dipendenze, crea le DagRun in base allo schedule e assegna i task ai worker.

Definire lo schedule

dag = DAG('daily_etl', schedule_interval='0 6 * * *')     # ogni giorno alle 6:00
dag = DAG('hourly', schedule_interval='@hourly')
dag = DAG('manual', schedule_interval=None)

Timetable (Airflow 2.2+)

from airflow.timetables.interval import CronDataIntervalTimetable

dag = DAG(
    'business_hours_only',
    timetable=CronDataIntervalTimetable(
        cron='0 9-17 * * 1-5',
        timezone='Europe/Rome',
    ),
)

Data Interval e Execution Date

Un DAG con schedule @daily che processa i dati del 1° gennaio verrà eseguito il 2 gennaio, perché Airflow aspetta che il periodo di dati sia completo.

Catchup e Backfill

dag = DAG(
    'my_dag',
    start_date=datetime(2024, 1, 1),
    catchup=False,
)

Best Practice

  • Imposta sempre una start_date fissa
  • Usa catchup=False di default
  • Definisci i timezone esplicitamente
  • Monitora le performance dello scheduler

Una comprensione approfondita dello Scheduler è essenziale per pipeline che rispettino i requisiti temporali del business.

Tag:
Apache AirflowSchedulerCron

Articoli correlati