Débogage et dépannage dans Airflow

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Problèmes courants

  • Le Dag ne respecte pas l'horaire
  • 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 respecte pas l'horaire

  • Au moins une période de schedule n'est pas écoulée
    • Modifier les attributs selon vos besoins
  • Ressources insuffisantes pour l'exécuter
    • Ajouter des ressources système
    • Ajouter d'autres systèmes
    • Changer la planification du Dag
Introduction à Apache Airflow en Python

Le Dag ne se charge pas

  • Dag absent de l'interface Web
  • Dag absent de airflow dags list

Solutions possibles

  • Vérifier que le fichier Dag est dans le bon dossier (les fichiers Dag hors du dossier Dags ne sont pas analysés)
  • Repérer le dossier Dags avec airflow info

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

Introduction à Apache Airflow en Python

Erreurs de syntaxe

  • La raison la plus fréquente pour laquelle un fichier Dag n'apparaît pas
  • Parfois, les erreurs dans un Dag sont difficiles à repérer
  • Trois méthodes rapides :

    • Vérifier les fenêtres d'erreur dans l'interface Airflow

    • Exécuter airflow dags list-import-errors

    • Exécuter python3 <dagfile.py>

Introduction à Apache Airflow en Python

Erreurs d'importation dans l'interface Airflow

Page d'accueil d'Airflow montrant une alerte d'erreur d'importation de Dag

Détail d'erreur d'importation Airflow affichant le message de retraçage du Dag

Introduction à Apache Airflow en Python

airflow dags list-import-errors

Sortie de terminal de airflow dags list-import-errors montrant une erreur

Introduction à Apache Airflow en Python

airflow dags reserialize

  • Les changements au Dag peuvent ne pas paraître immédiatement
  • Par défaut, Airflow vérifie les mises à jour de Dag toutes les 5 minutes
  • Vous pouvez forcer une revérification avec 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 l'exécution d'un fichier Dag avec python3 et sans erreur

Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...