DAG Airflow

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Qu’est-ce qu’un DAG ?

DAG, ou graphe orienté acyclique :

  • Orienté : flux indiquant les dépendances entre composants.
  • Acyclique : pas de boucle/cycle/répétition.
  • Graphe : l’ensemble des composants.
  • Utilisé dans Airflow, Apache Spark, dbt

DAG

1 https://en.m.wikipedia.org/wiki/Directed_acyclic_graph
Introduction à Apache Airflow en Python

DAG dans Airflow

Dans Airflow, les DAG :

  • Sont écrits en Python (mais peuvent appeler des composants dans d’autres langues).
  • Sont composés de composants (généralement des tâches) à exécuter : opérateurs, capteurs, etc.
  • Contiennent des dépendances explicites ou implicites.
    • ex. Copier le fichier sur le serveur avant de l’importer dans la base de données.
Introduction à Apache Airflow en Python

Définir un DAG

Exemple de DAG :

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
with DAG('etl_workflow', default_args=default_arguments ) as etl_dag:
Introduction à Apache Airflow en Python

Définir un DAG (avant Airflow 2.x)

Exemple de DAG :

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
etl_dag = DAG('etl_workflow', default_args=default_arguments )
Introduction à Apache Airflow en Python

DAG en ligne de commande

Utiliser airflow :

  • Le programme en ligne de commande airflow contient de nombreuses sous-commandes.
  • airflow -h pour les descriptions.
  • Beaucoup concernent les DAG.
  • airflow dags list affiche tous les DAG reconnus.
Introduction à Apache Airflow en Python

Ligne de commande vs Python

Utilisez l’outil en ligne de commande pour :

  • Démarrer des processus Airflow
  • Exécuter manuellement des DAG/tâches
  • Récupérer les logs d’Airflow

Utilisez Python pour :

  • Créer un DAG
  • Modifier les propriétés d’un DAG
Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...