DAG
et les scheduler,tasks
Airflow et les orchestrer,IO
avec Airflow.Pour ce TP, utilisez la branch 4_starting_orchestration
git checkout 4_starting_orchestration
Sur cette branche, il y a maintenant :
dags/train.py
qui permet d'entraîner un modèledags/predict.py
qui est incomplet et qui permettra de réaliser des prédictionsformation_indus_avancee/
ont été décorées avec des read
et des write
pour donnerfunction_name_with_io
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.
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 :
%Y%m%d-%H%M%S
, exemple:/airflow/airflow.cfg
avec l'éditeur nano /airflow/airflow.cfg
:dags_folder
pour pointer sur /home/jovyan/Formation-MLOps-2/dags
, cela permet d'indiquer à# 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
Launcher
, lancer le service Airflow
.Les identifiants de connection à airflow sont adminadmin
L'interface graphique d'Airflow devrait s'ouvrir dans un nouvel onglet, un message d'alerte vous préviendra que lescheduler
ne répond pas, car il n'est pas démarré.
airflow scheduler
.L'interface graphique devrait désormais afficher 3 DAGs :
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
cd Formation-MLOps-2; pip install .
Pour lancer le DAG train
:
ON/OFF
(à gauche de chaque ligne de DAG),Trigger Dag
dans les links (l'icône play) (sur la droite).Inspecter le DAG train
en cliquant sur celui-ci, la tâche prepare_features
devrait avoir commencé :
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