boolRule brScore

Categorización Masiva de Inventario (Prueba de Rendimiento)

Scénario de test & Cas d'usage

Contexto empresarial

Un gigante del comercio electrónico necesita procesar diariamente catálogos de millones de productos. El equipo de Data Engineering quiere validar que la acción `brScore` puede manejar grandes volúmenes de datos eficientemente utilizando procesamiento paralelo. Se simulará una carga masiva de descripciones de productos para asignar etiquetas de categoría (ej. 'Electrónica', 'Hogar').
Sobre el conjunto : boolRule

Extracción de reglas booleanas para clasificación.

Descubrir todas las acciones de boolRule
Preparación de datos

Generación sintética de 100,000 registros de productos y una tabla de reglas compleja.

¡Copiado!
1PROC CAS;
2 DATA mycas.catalogo_masivo;
3 DO i=1 to 100000;
4 prod_id = cat('PROD_', put(i, z6.));
5 DO j=1 to 3;
6 term_code = cat('T', put(floor(rand('uniform')*50), z2.));
7 OUTPUT;
8 END;
9 END;
10 RUN;
11
12 DATA mycas.reglas_cat;
13 INPUT rid $ rterm $;
14 DATALINES;
15 CAT_A T01
16 CAT_A T02
17 CAT_B T10
18 CAT_B T11
19 CAT_C T20
20 ;
21 RUN;
22 QUIT;

Étapes de réalisation

1
Ejecución de brScore con el parámetro nThreads configurado para maximizar el paralelismo.
¡Copiado!
1PROC CAS;
2 ACTION boolRule.brScore /
3 TABLE={name='catalogo_masivo'},
4 docId='prod_id',
5 termId='term_code',
6 ruleTerms={name='reglas_cat'},
7 nThreads=4,
8 casOut={name='categorias_asignadas', replace=true};
9 RUN;
10 QUIT;
2
Verificación del conteo de registros procesados para asegurar integridad.
¡Copiado!
1PROC CAS;
2 TABLE.recordCount / TABLE='categorias_asignadas';
3 RUN;
4 QUIT;

Resultado esperado


La acción debe completarse sin errores de memoria. La tabla 'categorias_asignadas' debe contener los resultados de la clasificación para los 100,000 productos. El uso de `nThreads=4` debería distribuir la carga entre los nodos disponibles.