À l'issue de cette section, vous aurez découvert

Présentation des nouveautés sur la branche de ce TP

Pour ce TP, utilisez la branch 4_starting_orchestration

git checkout 4_starting_orchestration

Sur cette branche, il y a maintenant :

Le dossier scripts contient des scripts d'entraînement et de prédiction pour notre cas d'usage de Machine Learning.

Nous allons désormais voir comment orchestrer ces tâches grâce à Airflow.

Revue de code avec les formateurs pour introduire les concepts de DAGs et de tâches dans le code.

Gestion des IO

Il n'est pas conseillé de passer de la donnée d'une tâche à l'autre dans un DAG Airflow.

Pour répondre à ce problème, nous avons décoré la fonction de prédiction avec

A l'image des fonctions train_with_io et train du module train_and_predict.py dans /formation_indus_ds_avancee,
nous avons créé une fonction predict_with_io qui soit utilisable par le DAG Airflow.

Les prédictions réalisées sont écrites dans 2 fichiers identiques :

# Fichier /airflow/airflow.cfg
[core]
# The folder where your airflow pipelines live, most likely a
# subfolder in a code repository
# This path must be absolute
dags_folder = /airflow/dags

...

# Whether to load the examples that ship with Airflow.
load_examples = True

...

# How often (in seconds) to scan the DAGs directory for new files. Default to 5 minutes.
dag_dir_list_interval = 300

Les identifiants de connection à airflow sont adminadmin

launcher

L'interface graphique d'Airflow devrait s'ouvrir dans un nouvel onglet, un message d'alerte vous préviendra que le
scheduler ne répond pas, car il n'est pas démarré.

L'interface graphique devrait désormais afficher 3 DAGs :

ui-airflow

Afin de s'entraîner, il va nous falloir des données d'entraînement !

Elles ne sont pas versionnées dans ce repo. Télécharger les données avec la commande make dataset.

Les données sont désormais disponibles dans data/la-haute-borne-data-2017-2020.csv.

Airflow tourne en utilisant l'env base de python. Il faut donc installer notre librairie

Pour lancer le DAG train:

ui-airflow

Inspecter le DAG train en cliquant sur celui-ci, la tâche prepare_features devrait avoir commencé :

train-dag

Compléter le DAG dags/predict pour intégrer la fonction predict_with_io dans un opérateur, avec les bons arguments.

Pour aller plus loin en attendant les autres stagiaires, vous pouvez regarder comment utiliser les fichiers générés par
le DAG get_data_from_engie_hub.py dans le DAG predict.

Les instructions du tp suivant sont ici