Planification Airflow

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Exécutions de DAG

  • Une instance spécifique d’un workflow à un instant donné
  • Exécutable manuellement ou via schedule_interval
  • Conserve l’état de chaque workflow et de ses tâches
    • running
    • failed
    • success
1 https://airflow.apache.org/docs/stable/scheduler.html
Introduction à Apache Airflow en Python

Vue des exécutions de DAG

Vue des exécutions de DAG

Introduction à Apache Airflow en Python

État des exécutions de DAG

État des exécutions de DAG

Introduction à Apache Airflow en Python

Détails de planification

Lors de la planification d’un DAG, notez :

  • start_date - Date/heure du premier déclenchement du DAG
  • end_date - Optionnel, quand arrêter de créer de nouvelles instances
  • max_tries - Optionnel, nombre de tentatives
  • schedule_interval - Fréquence d’exécution
Introduction à Apache Airflow en Python

Intervalle de planification

schedule_interval indique :

  • La fréquence de planification du DAG
  • Entre start_date et end_date
  • Défini via une syntaxe de type cron ou des préréglages intégrés
Introduction à Apache Airflow en Python

Syntaxe cron

Syntaxe cron

  • Issue du format cron Unix
  • 5 champs séparés par des espaces
  • L’astérisque * signifie à chaque intervalle (ex. chaque minute, chaque jour)
  • Des valeurs séparées par des virgules sont possibles dans les champs
Introduction à Apache Airflow en Python

Exemples cron

0 12 * * *              # Exécuter chaque jour à midi
* * 25 2 *              # Exécuter chaque minute le 25 février
0,15,30,45 * * * *      # Exécuter toutes les 15 minutes
Introduction à Apache Airflow en Python

Préréglages du planificateur Airflow

Préréglages :

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly

Équivalent cron :

  • 0 * * * *
  • 0 0 * * *
  • 0 0 * * 0
  • 0 0 1 * *
  • 0 0 1 1 *
1 https://airflow.apache.org/docs/stable/scheduler.html
Introduction à Apache Airflow en Python

Préréglages spéciaux

Airflow propose deux préréglages spéciaux pour schedule_interval :

  • None - Aucune planification, pour les DAG déclenchés manuellement
  • @once - Planifier une seule fois
Introduction à Apache Airflow en Python

Problèmes de schedule_interval

Lors de la planification d’un DAG, Airflow :

  • Utilise start_date comme date la plus précoce
  • Programme la tâche à start_date + schedule_interval
'start_date': datetime(2020, 2, 25),
'schedule_interval': @daily

Donc l’heure de début la plus tôt pour exécuter le DAG est le 26 février 2020

Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...