Scénario de test & Cas d'usage
Génération simulée de 10 000 sessions de navigation avec des timestamps en secondes.
| 1 | DATA casuser.web_logs; |
| 2 | call streaminit(123); |
| 3 | DO session_id = 1 to 10000; |
| 4 | t = 0; |
| 5 | DO page_seq = 1 to 5; |
| 6 | t = t + rand('integer', 1, 60); /* Pages vues toutes les 1 à 60 sec */ |
| 7 | page = scan('ACCUEIL SPORT POLITIQUE METEO TECH', rand('integer', 1, 5)); |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | END; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | sequence.cspade / |
| 3 | TABLE={name="web_logs", caslib="casuser"}, |
| 4 | sequenceId="session_id", |
| 5 | eventId="t", |
| 6 | itemId="page", |
| 7 | supportCnt=500, /* Doit apparaitre 500 fois au moins */ |
| 8 | minGap=0, |
| 9 | maxGap=30, /* On cherche des clics enchainés rapidement (<30s) */ |
| 10 | casout={name="hot_pathways", caslib="casuser", replace=true}; |
| 11 | RUN; |
| 12 | QUIT; |
L'action doit s'exécuter sans erreur de mémoire (Out of Memory) malgré la volumétrie. La table 'hot_pathways' ne contiendra que les enchaînements de pages effectués en moins de 30 secondes d'intervalle, filtrant ainsi les lectures lentes.