activeLearn alJoin

Conciliación de Datos de Sensores IoT con Registros de Mantenimiento Incompletos

Scénario de test & Cas d'usage

Contexto empresarial

Una planta industrial monitoriza sus máquinas con sensores. Los datos de los sensores se guardan en una tabla ('DATOS_SENSORES') y las intervenciones de mantenimiento se registran en otra ('REGISTRO_MANTENIMIENTO'). Sin embargo, los registros no son perfectos: algunas intervenciones pueden apuntar a eventos de sensor que han sido purgados, y algunos datos de sensores anómalos aún no tienen una intervención registrada. Se necesita consolidar esta información para un informe de auditoría.
Sobre el conjunto : activeLearn

Aprendizaje activo para optimizar el etiquetado de datos.

Descubrir todas las acciones de activeLearn
Preparación de datos

Se crea una tabla de sensores ('DATOS_SENSORES') y una de mantenimiento ('REGISTRO_MANTENIMIENTO'). 'DATOS_SENSORES' tiene un ID (S03) que no está en mantenimiento. 'REGISTRO_MANTENIMIENTO' tiene un ID (S04) que no está en la tabla de sensores, representando un registro obsoleto.

¡Copiado!
1DATA casuser.DATOS_SENSORES;
2 LENGTH SensorID $ 5 Valor 8;
3 INPUT SensorID $ Valor;
4 DATALINES;
5S01 105.5
6S02 210.0
7S03 99.8
8;
9RUN;
10 
11DATA casuser.REGISTRO_MANTENIMIENTO;
12 LENGTH SensorID $ 5 Accion $ 50;
13 INPUT SensorID $ Accion $;&
14 DATALINES;
15S01 'Calibracion realizada'
16S02 'Pieza reemplazada'
17S04 'Filtro limpiado'
18;
19RUN;

Étapes de réalisation

1
Cargar las tablas a CAS.
¡Copiado!
1PROC CASUTIL;
2 load DATA=casuser.DATOS_SENSORES outcaslib='casuser' casout='DATOS_SENSORES' replace;
3 load DATA=casuser.REGISTRO_MANTENIMIENTO outcaslib='casuser' casout='REGISTRO_MANTENIMIENTO' replace;
4RUN;
5QUIT;
2
Ejecutar una unión completa (FULL JOIN) para asegurar que no se pierda ninguna información, ni de los sensores ni del mantenimiento, y ver todos los desajustes.
¡Copiado!
1PROC CAS;
2 activeLearn.alJoin /
3 TABLE={name='DATOS_SENSORES'},
4 annotatedTable={name='REGISTRO_MANTENIMIENTO'},
5 id='SensorID',
6 joinType='FULL',
7 casOut={name='AUDITORIA_COMPLETA', replace=true};
8RUN;
9QUIT;
3
Ejecutar una unión derecha (RIGHT JOIN) para enfocarse en validar todos los registros de mantenimiento, incluso si el dato del sensor ya no existe.
¡Copiado!
1PROC CAS;
2 activeLearn.alJoin /
3 TABLE={name='DATOS_SENSORES'},
4 annotatedTable={name='REGISTRO_MANTENIMIENTO'},
5 id='SensorID',
6 joinType='RIGHT',
7 casOut={name='VALIDACION_MANTENIMIENTO', replace=true};
8RUN;
9QUIT;

Resultado esperado


La tabla 'AUDITORIA_COMPLETA' contendrá 4 filas. La fila para S03 tendrá un valor faltante para 'Accion'. La fila para S04 tendrá un valor faltante para 'Valor'. Las filas S01 y S02 estarán completas. La tabla 'VALIDACION_MANTENIMIENTO' contendrá 3 filas (S01, S02, S04), demostrando que se conservan todos los registros de la tabla derecha ('REGISTRO_MANTENIMIENTO').