Publié le :
Administration CREATION_INTERNE

Création de Référentiels et Projets pour SAS Model Manager

Attention : Ce code nécessite des droits administrateur.
Le script commence par obtenir un jeton d'authentification pour l'environnement SAS© Viya via la macro `%mm_get_token`. Ensuite, il procède à la création structurée d'environnements de modélisation. Pour chaque département (HR et Sales), il crée d'abord un référentiel de modèles dédié, puis y ajoute deux projets distincts : un pour le développement ('Dev') et un pour la production ('Prod'). Les identifiants des objets créés (référentiels, dossiers, projets) sont systématiquement stockés dans des variables macro pour une potentielle réutilisation.
Analyse des données

Type : CREATION_INTERNE


Le script ne lit ni ne manipule de données tabulaires. Son unique fonction est de créer des objets de métadonnées (référentiels et projets) au sein de l'infrastructure SAS Model Manager via des appels macro.

1 Bloc de code
Macro
Explication :
Définit les paramètres de connexion (serveur, utilisateur, mot de passe) dans des variables macro, puis utilise la macro `%mm_get_token` pour obtenir un jeton d'authentification (token) OAuth2. Ce jeton est stocké dans la macro-variable `myTokenName` et sera utilisé pour autoriser les actions suivantes.
Copié !
1%let servernm=http://sasviya01.race.sas.com;
2%let userID=geladm;
3%let password=lnxsas;
4 
5%mm_get_token(
6 baseURL=&servernm,
7 user=&userID,
8 pw=&password,
9 tokenname=myTokenName
10);
2 Bloc de code
Macro
Explication :
Ce bloc crée l'environnement pour le département HR. Il utilise d'abord `%mm_create_repository` pour créer un référentiel nommé 'HR'. Ensuite, il utilise `%mm_create_project` deux fois pour ajouter les projets 'HR Prod' et 'HR Dev' à ce nouveau référentiel.
Copié !
1* Create HR model repository;
2%mm_create_repository(
3 repositorynm=HR,
4 servernm=&servernm,
5 repositorydesc=Model Repository for HR,
6 reposid=HR_repID,
7 reposfolderid=HR_repFldrID,
8 token=%myTokenName
9);
10 
11* Create two HR modeling projects;
12%mm_create_project(
13 projectnm = HR Prod,
14 folderID = &HR_repFldrID,
15 function = Classification,
16 servernm = &servernm,
17 projectID = HRProd_projID,
18 projectversionID = HRProd_projVerID,
19 token=%myTokenName
20);
21%mm_create_project(
22 projectnm = HR Dev,
23 folderID = &HR_repFldrID,
24 function = Classification,
25 servernm = &servernm,
26 projectID = HRDev_projID,
27 projectversionID = HRDev_projVerID,
28 token=%myTokenName
29);
3 Bloc de code
Macro
Explication :
Ce bloc est similaire au précédent mais pour le département Sales. Il crée un référentiel de modèles nommé 'Sales' et y ajoute ensuite les projets 'Sales Prod' et 'Sales Dev'.
Copié !
1* Create Sales model repository;
2%mm_create_repository(
3 repositorynm=Sales,
4 servernm=&servernm,
5 repositorydesc=Model Repository for Sales,
6 reposid=Sales_repID,
7 reposfolderid=Sales_repFldrID,
8 token=%myTokenName
9);
10 
11* Create two Sales modeling projects;
12%mm_create_project(
13 projectnm = Sales Prod,
14 folderID = &Sales_repFldrID,
15 function = Classification,
16 servernm = &servernm,
17 projectID = SalesProd_projID,
18 projectversionID = SalesProd_projVerID,
19 token=%myTokenName
20);
21%mm_create_project(
22 projectnm = Sales Dev,
23 folderID = &Sales_repFldrID,
24 function = Classification,
25 servernm = &servernm,
26 projectID = SalesDev_projID,
27 projectversionID = SalesDev_projVerID,
28 token=%myTokenName
29);
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« L'automatisation de la création de référentiels et de projets via les macros SAS Model Manager est une étape clé pour instaurer une culture MLOps rigoureuse. Ce script illustre comment passer d'une gestion manuelle à une infrastructure de modélisation "as-code", garantissant une isolation stricte des environnements par département (RH, Ventes) et par cycle de vie (Dev, Prod).

Recommandations et points de vigilance
Sécurisation du Jeton (Token) : L'utilisation de %mm_get_token est indispensable pour interagir avec les API REST de SAS Viya. Cependant, pour une mise en production, évitez de coder les mots de passe en clair. Utilisez plutôt des mécanismes de fichiers d'authentification (authinfo) ou des variables d'environnement sécurisées pour protéger les identifiants de connexion.

Hiérarchie et Traçabilité : Le script lie intelligemment les projets aux référentiels via l'identifiant folderID. Cette méthode assure que chaque modèle est rangé au bon endroit dès sa création. La récupération systématique des identifiants (comme HRProd_projID) dans des variables macro est une excellente pratique qui permet d'enchaîner immédiatement sur l'importation de modèles ou l'exécution de tests de performance.

Définition de la Fonction du Projet : Notez l'argument function=Classification. Sur SAS Viya, ce paramètre est crucial car il détermine les rapports de performance (Lift, ROC, Misclassification) qui seront disponibles par défaut. Assurez-vous que cette fonction correspond précisément à l'objectif métier de vos modèles pour exploiter pleinement les capacités d'audit de Model Manager. »