textRuleDevelop compileCategory

Performance et Gestion des Identifiants de Règles (Volumétrie)

Scénario de test & Cas d'usage

Contexte Métier

Un géant du e-commerce met à jour son modèle de classification produits. Le département IT doit compiler un modèle contenant des milliers de règles générées dynamiquement, chacune associée à un ID unique pour la traçabilité. Ce test valide la capacité de l'action à gérer une charge importante de règles et l'utilisation correcte du paramètre 'ruleId'.
Préparation des Données

Génération dynamique de 1000 règles de catégorisation factices via une macro SAS pour simuler un grand catalogue, avec une colonne d'identifiant de règle.

Copié !
1 
2DATA casuser.rules_catalogue;
3LENGTH config $100 rule_id_col $20;
4DO i=1 to 1000;
5rule_id_col = catx('_', 'RULE', i);
6IF i=1 THEN config='categories:';
7ELSE DO;
8cat_name = catx('_', 'Produit', i);
9config = cat('- name: ', cat_name);
10OUTPUT;
11config = ' rules:';
12OUTPUT;
13config = cat(' - (SENT, "ref_prod_', i, '")');
14OUTPUT;
15END;
16END;
17 
18RUN;
19 

Étapes de réalisation

1
Chargement des données volumétriques.
Copié !
1 
2PROC CAS;
3TABLE.loadTable / caslib='casuser'
4SOURCE='rules_catalogue' casout={name='rules_catalogue', replace=true};
5 
6RUN;
7 
2
Compilation du modèle avec spécification explicite de la langue (Anglais par défaut explicité) et mappage de la colonne d'identifiant de règle.
Copié !
1 
2PROC CAS;
3textRuleDevelop.compileCategory / TABLE={name='rules_catalogue', caslib='casuser'} config='config' ruleId='rule_id_col' language='en' casOut={name='modele_catalogue_massif', caslib='casuser', replace=true};
4 
5RUN;
6 

Résultat Attendu


Le modèle 'modele_catalogue_massif' est généré. Malgré la boucle de 1000 itérations dans les données, l'action doit performer rapidement. Le paramètre 'ruleId' ne doit pas provoquer d'erreur, confirmant que les métadonnées des règles sont bien intégrées au modèle binaire.