Usecase 1: titanic¶
Usecase 1a: Modèle k-nearest neighbors (k-NN) en python¶
- Objectif : prévision sur la survie des passagers du Titanic
- Resources : https://www.kaggle.com/c/titanic/overview/
- Technique : machine learning
- Outils utilisés : scikit-learn, bibliothèque python minio
La mise en place d'un traitement sur le dataset passe par plusieurs étapes :
- Récupérer le usecase
titanic
du dépôt Github https://github.com/criann/datalab-normandie-demos-saagie.git - Déposer le dataset dans le bucket S3 du groupe
- Créer un Service Account
- Définir des variables d'environnement au niveau du projet
- Créer une archive contenant le script de traitement et un fichier
requirements.txt
pour les modules python nécessaires - Créer un job de type Python (min. 3.6) et y définir le package (archive créée précédemment) et la ligne de commande d'execution.
Récupérer une copie du dépôt Github¶
git clone https://github.com/criann/datalab-normandie-demos-saagie.git
cd datalab-normandie-demos-saagie/usecases/titanic
Déposer le dataset¶
- Connectez-vous sur la console web du datalake S3 : https://s3-console.atelier.datalab-normandie.fr avec votre login et mot de passe
- Se rendre dans la partie Buckets
- puis cliquer sur le bouton Browse de votre bucket de groupe
group-xxxx
- Cliquer sur le bouton New path et renseigner
titanic
- une fois dans le chemin
titanic
, cliquer sur Upload Files puis Upload folder - sélectionner le dossier
data
de votre copie du dépôt Github et valider - le dossier
data
a été importé dans le dossiertitanic
de votre bucket de groupe
Créer un Service Account¶
- Créer un Service Account pour le projet
- Identity / Service Account
- bouton Create Service Account
- Valider le formulaire avec les valeurs par défaut
- Cliquer sur Download pour télécharger un fichier contenant un rappel des jetons Access Key et Secret Key générés
Définir des variables d'environnement au niveau du projet¶
- Se connecter sur l'outil de traitement de la donnée avec son login et mot de passe : https://dln-p1.atelier.datalab-normandie.fr
- Se rendre dans le projet puis dans la section Environment variables
- Définir des variables pour conserver les valeurs pour l'Access Key et le Secret Key de l'étape précédente
- Bouton New variable
- Définir les valeurs des champs
- Bouton Save
Variable name | Description | is password | value |
---|---|---|---|
DATALAKE_ACCESS_KEY | Access key pour l'accès au datalake S3 | valeur de l'Access Key de l'étape précédente | |
DATALAKE_SECRET_KEY | Secret key pour l'accès au datalake S3 | valeur de la Secret Key de l'étape précédente |
Des variables sont définies au niveau global et les projets et leurs jobs en héritent automatiquement.
Variable name | Description | is password | value |
---|---|---|---|
DATALAKE_HOST | FQDN d'accès API au datalake S3 | s3.atelier.datalab-normandie.fr | |
DATALAKE_SCHEME | HTTP Scheme de l'URL complet (http ou https ) | https | |
DATALAKE_URL | URL complet d'accès à l'API (https://...) | https://s3.atelier.datalab-normandie.fr |
Créer une archive contenant le script de traitement¶
L'archive qui sera utilisée par le job devra contenir 2 éléments :
- un fichier
requirements.txt
qui sera automatiquement utilisé au lancement du job - un fichier
__main__.py
qui est le script de lancement du traitement à réaliser
# depuis le dossier usecases/titanic
cd with_datalake_s3
cp titanic_pandas.py __main__.py
zip archive.zip requirements.txt __main__.py
Attention lors de la création de l'archive
Lorsque vous créez l'archive, assurez vous bien que les deux fichiers soient à la racine de l'archive.
Lorsque vous décompressez l'archive, vous devez directement avoir les fichiers et non un sous-dossier contenant les fichiers.
Créer un job Python¶
- Se connecter sur l'outil de traitement de la donnée avec son login et mot de passe : https://dln-p1.atelier.datalab-normandie.fr
- Se rendre dans le projet puis la section Jobs
- Cliquer sur le bouton New job
- Définir un nom de job (par exemple
titanic_s3
) - Sélectionner
Extraction / Python
- Sélectionner la version de python souhaitée (par défaut
3.9
) - Sélectionner l'archive créée dans l'étape précédente comme Package
-
Renseigner la Command line suivante :
1
python {file}
-
Valider
Lancer le job¶
- se rendre dans le job
titanic_s3
créé dans l'étape précédente depuis la liste des jobs - Cliquer sur le bouton Run afin de lancer le job dans l'état de configuration du job (la version) : cela crée une instance du job pour la dernière version sélectionnée
- Vous pouvez lancer un rafraîchissement de la page via le symbole en haut à droite
- le statut de l'instance passe par plusieurs états parmi la liste suivante :
Requested
,Queued
,Running
,Failed
,Killing
,Killed
,Succeeded
etUnknown
. - l'objectif est donc d'arriver à un statut
Succeeded
- le statut de l'instance passe par plusieurs états parmi la liste suivante :
- Aller dans la section Instances du job : vous y trouverez les informations (état, dates, version du job, logs) concernant les instances du job
- Les logs sont téléchargeables avec le bouton Download et consultables directement
Usecase 1b: extraction sélective par S3 SELECT¶
- Objectif : récupération du nombre de passagers survivants du Titanic qui ont embarqué à Cherbourg
- Technique : S3 SELECT
- Outils utilisés : lib python boto3
Les étapes :
- Reprendre les premières étapes du usecase 1
- Se rendre dans le dossier
s3_select
- Créer l'archive du job
- Créer un job python
Se rendre dans le dossier s3_select
¶
# depuis le dossier usercases/titanic sur son poste
cd s3_select
Créer l'archive du job¶
zip archive.zip requirements.txt __main__.py
Créer un job Python pour le usecase 1b¶
- Se connecter sur l'outil de traitement de la donnée avec son login et mot de passe : https://dln-p1.atelier.datalab-normandie.fr
- Se rendre dans le projet puis la section Jobs
- Cliquer sur le bouton New job
- Définir un nom de job (par exemple
titanic_s3_select
) - Sélectionner
Extraction / Python
- Sélectionner la version de python souhaitée (par défaut
3.9
) - Sélectionner l'archive créée dans l'étape précédente comme Package
-
Renseigner la Command line suivante :
1
python {file}
-
Valider
Dernière mise à jour: 5 avril 2022 18:30:41