Scénario de test & Cas d'usage
Gestion de l'état de la session CAS.
Découvrir toutes les actions de sessionCréation d'une table volumineuse simulant des données de capteurs IoT pour un modèle de maintenance prédictive.
| 1 | DATA 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; |
| 12 | RUN; |
| 1 | cas session_ds; |
| 2 | PROC 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'; |
| 9 | RUN; |
| 10 | QUIT; |
| 1 | cas session_admin; |
| 2 | PROC 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; |
| 7 | RUN; |
| 8 | QUIT; |
| 1 | PROC CAS SESSION=session_ds; |
| 2 | ACTION SESSION.listactionq; |
| 3 | RUN; |
| 4 | QUIT; |
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é.