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 de données client pour l'entraînement du modèle.
| 1 | PROC CAS; |
| 2 | dataStep.runCode / code='data casuser.CUSTOMER_DATA (promote=yes); |
| 3 | array inputs{10} x1-x10; |
| 4 | do i = 1 to 2000000; |
| 5 | do j = 1 to 10; |
| 6 | inputs{j} = rand("NORMAL"); |
| 7 | end; |
| 8 | target = (inputs{1} + inputs{5} > 1); |
| 9 | output; |
| 10 | end; |
| 11 | run;'; |
| 12 | RUN; |
| 1 | PROC CAS; |
| 2 | SESSION.startSession RESULT=r_sess name='ml_training_session'; |
| 3 | ml_job_uuid = r_sess['session']; |
| 4 | PRINT 'UUID de la session ML: ' ml_job_uuid; |
| 5 | |
| 6 | /* Lancer l'entraînement asynchrone */ |
| 7 | decisionTree.dtreeTrain / |
| 8 | SESSION=ml_job_uuid, |
| 9 | async='dtree_task', |
| 10 | TABLE='CUSTOMER_DATA', |
| 11 | target='target', |
| 12 | inputs={'x1','x2','x3','x4','x5','x6','x7','x8','x9','x10'}, |
| 13 | nominals={'target'} |
| 14 | ; |
| 15 | RUN; |
| 1 | PROC CAS; |
| 2 | /* La variable 'ml_job_uuid' doit contenir la valeur obtenue à l'étape 1 */ |
| 3 | DO i = 1 to 5; |
| 4 | PRINT 'Vérification ' i; |
| 5 | SESSION.actionstatus / uuid=ml_job_uuid; |
| 6 | /* Attendre 2 secondes entre chaque vérification */ |
| 7 | res = sleep(2, 1); |
| 8 | END; |
| 9 | RUN; |
Le log doit afficher 5 vérifications successives. Pour chaque vérification, une table de statut est affichée. Le statut de l'action d'entraînement doit être 'running' ou 'completed'. Cela valide que `actionstatus` peut être appelé de manière répétée sur une session active et sous charge sans causer d'instabilité.