activeLearn alJoin

Scénario Performance : Jointure sur des données IoT à haute volumétrie

Scénario de test & Cas d'usage

Contexte Métier

Dans un contexte de maintenance prédictive industrielle, il est nécessaire de joindre un très grand volume de lectures de capteurs (des millions d'enregistrements) avec une table de référence contenant les spécifications de chaque capteur (type, seuil de tolérance). Ce test vise à valider la performance et la robustesse de l'action `alJoin` sous une charge de données importante.
À propos du Set : activeLearn

Apprentissage actif pour optimiser l'étiquetage des données.

Découvrir toutes les actions de activeLearn
Préparation des Données

Génération d'une table de référence de 100 capteurs et d'une table de lectures contenant 1 million de mesures simulées.

Copié !
1DATA mycas.specs_capteurs;
2 DO id_capteur = 1 to 100;
3 IF mod(id_capteur, 2) = 0 THEN type_capteur = 'Temperature';
4 ELSE type_capteur = 'Pression';
5 seuil_max = 100 + ranuni(1)*10;
6 OUTPUT;
7 END;
8RUN;
9 
10DATA mycas.lectures_iot (drop=i);
11 call streaminit(123);
12 DO i = 1 to 1000000;
13 id_capteur = rand('integer', 1, 100);
14 valeur = 95 + rand('uniform')*15;
15 OUTPUT;
16 END;
17RUN;

Étapes de réalisation

1
Chargement des tables en mémoire CAS (implicite via la caslib).
Copié !
1/* Les données sont déjà dans la caslib 'mycas' et donc disponibles pour CAS */
2
Exécution d'une jointure interne pour enrichir chaque lecture de capteur avec ses spécifications techniques. Le temps d'exécution est un indicateur clé de performance.
Copié !
1PROC CAS;
2 ACTION activeLearn.alJoin /
3 TABLE={name='lectures_iot'}
4 annotatedTable={name='specs_capteurs'}
5 id='id_capteur'
6 joinType='INNER'
7 casOut={name='lectures_enrichies_vol', replace=true};
8RUN;
9QUIT;

Résultat Attendu


L'action doit se terminer avec succès dans un délai raisonnable pour un volume de 1 million de lignes. La table résultante `lectures_enrichies_vol` doit contenir 1 million de lignes, chacune ayant les colonnes `id_capteur`, `valeur`, `type_capteur`, et `seuil_max`. Ce scénario valide que l'action est capable de traiter des jointures sur de grands jeux de données de manière efficace en environnement distribué CAS.