simple compare

Vérification de la Synchronisation de Données IoT (Volumétrie & Fréquence)

Scénario de test & Cas d'usage

Contexte Métier

Une usine intelligente transmet des logs de capteurs vers le cloud. Suite à une coupure réseau, l'équipe Data Engineering doit comparer les logs locaux (table 1) et les logs reçus dans le cloud (table 2) pour identifier les pertes de paquets. On utilise les fréquences pour vérifier si le nombre de messages par capteur est identique.
Préparation des Données

Génération de données simulées de capteurs avec une boucle pour simuler du volume et introduire un écart.

Copié !
1 
2DATA casuser.LOGS_LOCAL;
3DO i=1 to 1000;
4SensorID='S_'||put(mod(i,10), z2.);
5Value=rand('Uniform');
6OUTPUT;
7END;
8 
9RUN;
10DATA casuser.LOGS_CLOUD;
11DO i=1 to 950;
12SensorID='S_'||put(mod(i,10), z2.);
13Value=rand('Uniform');
14OUTPUT;
15END;
16 
17RUN;
18 

Étapes de réalisation

1
Comparaison des fréquences par capteur avec renommage des colonnes générées pour clarté.
Copié !
1PROC CAS;
2 SIMPLE.compare /
3 TABLE={name='LOGS_LOCAL', groupBy={'SensorID'}},
4 table2={name='LOGS_CLOUD', groupBy={'SensorID'}},
5 freqOut={name='BILAN_SYNCHRO', replace=true},
6 generatedColumns={'ALL'},
7 frequencyName='Nb_Messages_Local',
8 frequency2Name='Nb_Messages_Cloud';
9RUN;

Résultat Attendu


La table 'BILAN_SYNCHRO' doit lister chaque 'SensorID' avec le décompte exact des messages locaux vs cloud. On s'attend à voir des différences (ex: S_01 a 100 messages locaux mais 95 cloud) indiquant la perte de données.