Débogage et dépannage dans Airflow

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Problèmes courants

  • Le Dag ne s’exécute pas selon le planning
  • Le Dag ne se charge pas
  • Erreurs de syntaxe

Illustration représentant des problèmes courants de dépannage Airflow

Introduction à Apache Airflow en Python

Le Dag ne s’exécute pas selon le planning

  • Au moins une période de schedule n’a pas encore passé
    • Modifiez les attributs selon vos besoins
  • Ressources insuffisantes pour s’exécuter
    • Ajoutez des ressources système
    • Ajoutez plus de systèmes
    • Modifiez la planification du Dag
Introduction à Apache Airflow en Python

Le Dag ne se charge pas

  • Le Dag n’apparaît pas dans l’UI Web
  • Le Dag n’apparaît pas dans airflow dags list

Solutions possibles

  • Vérifiez que le fichier Dag est dans le bon dossier (les fichiers Dag hors du dossier Dags ne sont pas parsés)
  • Trouvez le dossier Dags via airflow info

Sortie du terminal de airflow info mettant en évidence le chemin de dags_folder

Introduction à Apache Airflow en Python

Erreurs de syntaxe

  • Raison la plus courante pour laquelle un fichier Dag n’apparaît pas
  • Parfois difficile de repérer les erreurs dans un Dag
  • Trois méthodes rapides :

    • Vérifier la fenêtre d’erreur dans l’UI Airflow

    • Exécuter airflow dags list-import-errors

    • Exécuter python3 <dagfile.py>

Introduction à Apache Airflow en Python

Erreurs d’import dans l’UI Airflow

Page d’accueil Airflow affichant une alerte d’erreur d’import de Dag

Détail d’erreur d’import Airflow affichant la traceback du Dag

Introduction à Apache Airflow en Python

airflow dags list-import-errors

Sortie du terminal de airflow dags list-import-errors affichant une erreur

Introduction à Apache Airflow en Python

airflow dags reserialize

  • Les modifications de Dag peuvent ne pas apparaître immédiatement
  • Par défaut, Airflow vérifie les mises à jour des Dags toutes les 5 minutes
  • Vous pouvez forcer une relecture via airflow dags reserialize

Terminal exécutant airflow dags reserialize pour forcer l’actualisation d’un Dag

Introduction à Apache Airflow en Python

Exécuter l’interpréteur Python

python3 dagfile.py :

  • Avec erreurs

Terminal affichant une erreur de syntaxe Python en exécutant un fichier Dag avec python3

  • Sans erreurs

Terminal revenant à l’invite après exécution d’un fichier Dag avec python3 sans erreurs

Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...