sequence cspade

Performance et Volumétrie : Analyse de Navigation Web

Scénario de test & Cas d'usage

Contexte Métier

Un site d'actualités à fort trafic analyse les logs de navigation (clickstream). Le but est de détecter des motifs de navigation rapides (zapping) vs lecture approfondie. Le volume de données est important, et l'analyse se base sur un nombre absolu de sessions (supportCnt) plutôt qu'un pourcentage, avec des contraintes temporelles strictes (minGap/maxGap) pour définir une 'session active'.
Préparation des Données

Génération simulée de 10 000 sessions de navigation avec des timestamps en secondes.

Copié !
1DATA 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;
11RUN;

Étapes de réalisation

1
Exécution de l'algorithme sur grand volume avec filtrage temporel (Gap).
Copié !
1PROC 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};
11RUN;
12QUIT;

Résultat Attendu


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.