session batchresults

Scénario Standard : Détachement d'un job de segmentation client

Scénario de test & Cas d'usage

Contexte Métier

Un analyste marketing lance un long calcul de segmentation (clustering) sur une base de clients. Pour ne pas bloquer sa session SAS Viya, il souhaite détacher le processus pour qu'il s'exécute en arrière-plan, lui permettant de lancer d'autres requêtes exploratoires immédiatement après.
À 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 de clients simulée avec des données démographiques et comportementales pour le clustering.

Copié !
1DATA casuser.clients_marketing;
2 call streaminit(123);
3 DO id_client = 1 to 50000;
4 age = 20 + rand('integer', 50);
5 revenu_annuel = 30000 + rand('integer', 100000);
6 score_depense = 1 + rand('integer', 99);
7 OUTPUT;
8 END;
9RUN;

Étapes de réalisation

1
Lancement asynchrone de l'action de clustering `kClus` pour segmenter les clients. Le nom du job 'job_segmentation' est assigné pour récupérer son UUID.
Copié !
1PROC CAS;
2 ACTION clustering.kClus /
3 TABLE={name='clients_marketing', caslib='casuser'},
4 inputs={{name='age'}, {name='revenu_annuel'}, {name='score_depense'}},
5 maxClusters=5,
6 OUTPUT={casout={name='resultats_segmentation', replace=true}, copyvars='ALL'},
7 async='job_segmentation';
8RUN;
2
Utilisation de l'action `session.batchresults` avec l'UUID du job précédent pour le détacher de la session courante.
Copié !
1 
2PROC CAS;
3ACTION
4SESSION.batchresults / uuid=job_segmentation.jobId;
5RUN;
6 
3
Vérification que la session est immédiatement disponible en lançant une action rapide (`simple.summary`) sans attendre la fin du clustering.
Copié !
1PROC CAS;
2 ACTION SIMPLE.summary / TABLE={name='clients_marketing'};
3RUN;
4QUIT;

Résultat Attendu


L'action `batchresults` s'exécute avec succès. L'action `simple.summary` retourne ses résultats immédiatement, prouvant que la session n'est plus bloquée par le calcul de clustering. Le job de clustering continue en arrière-plan et la table `casuser.resultats_segmentation` sera créée sur le serveur CAS une fois le calcul terminé.