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_ioLe 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