session batchresults

Scénario Performance : Prise de contrôle inter-session d'un job de training volumineux

Scénario de test & Cas d'usage

Contexte Métier

Un data scientist lance un entraînement de modèle de machine learning (`forestTrain`) sur des millions de logs de capteurs IoT. Le processus prendra plusieurs heures. Un administrateur de la plateforme Viya, depuis sa propre session, doit s'assurer que ce job critique est bien passé en mode batch pour ne pas être interrompu si la session du data scientist venait à expirer.
À propos du Set : session

Gestion de l'état de la session CAS.

Découvrir toutes les actions de session
Préparation des Données

Création d'une table volumineuse simulant des données de capteurs IoT pour un modèle de maintenance prédictive.

Copié !
1DATA casuser.logs_capteurs_iot;
2 call streaminit(456);
3 DO id_capteur = 1 to 100;
4 DO i = 1 to 20000;
5 timestamp = datetime();
6 temperature = 70 + (id_capteur*0.1) + rand('normal', 0, 2);
7 vibration = 0.5 + (id_capteur*0.01) + rand('normal', 0, 0.1);
8 panne_imminente = (temperature > 85 and vibration > 1.5);
9 OUTPUT;
10 END;
11 END;
12RUN;

Étapes de réalisation

1
Session 1 (Data Scientist) : Lancement asynchrone de l'entraînement du modèle `forestTrain`.
Copié !
1cas session_ds;
2PROC CAS SESSION=session_ds;
3 ACTION decisionTree.forestTrain /
4 TABLE={name='logs_capteurs_iot'},
5 target='panne_imminente',
6 inputs={{name='temperature'}, {name='vibration'}},
7 savestate={name='modele_foret', replace=true},
8 async='job_training_long';
9RUN;
10QUIT;
2
Session 2 (Administrateur) : L'administrateur récupère l'UUID du job (par un moyen externe, ici simulé) et utilise `batchresults` depuis sa propre session pour détacher le job de la session du data scientist.
Copié !
1cas session_admin;
2PROC CAS SESSION=session_admin;
3 /* En pratique, l'UUID serait communiqué à l'admin. Ici on le récupère directement pour le test. */
4 string jobId;
5 jobId = session_ds.job_training_long.jobId;
6 ACTION SESSION.batchresults / uuid=jobId;
7RUN;
8QUIT;
3
Session 1 (Data Scientist) : Le data scientist vérifie sa file d'actions en cours. Le job de training ne doit plus y figurer.
Copié !
1PROC CAS SESSION=session_ds;
2 ACTION SESSION.listactionq;
3RUN;
4QUIT;

Résultat Attendu


L'action `batchresults` lancée par l'administrateur réussit. L'action `listactionq` exécutée ensuite par le data scientist retourne une liste vide ou ne contenant plus le `job_training_long`. Cela confirme que le job a été transféré avec succès en mode batch et n'est plus lié à la session d'origine, assurant sa continuité.