Publié le :

Gestion des formats SAS dans CAS

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le script initialise une session CAS et assigne toutes les caslibs disponibles. Il liste les bibliothèques de formats CAS existantes, puis crée un jeu de données temporaire 'cars' à partir de 'sashelp.cars'. Un format SAS©9 nommé 'enginesize' est créé localement et une copie est automatiquement créée dans une bibliothèque de formats CAS dédiée ('casformats'). Cette bibliothèque de formats est ensuite promue pour la rendre globale et persistante en mémoire. Le script sauvegarde la bibliothèque de formats dans un fichier SASHDAT pour assurer sa persistance au-delà des redémarrages du serveur CAS, puis vérifie l'existence du fichier. Un jeu de données CAS est ensuite créé, utilisant le format défini. Enfin, le script montre comment supprimer les bibliothèques de formats de session et globales, puis comment recharger un format à partir du fichier SASHDAT, listant les formats et leurs valeurs pour valider l'opération.
Analyse des données

Type : MIXTE


Le script utilise le jeu de données SASHELP.CARS, une source de données interne à SAS, pour la création des données initiales. Des jeux de données temporaires ('cars') et des jeux de données CAS ('casuser.cars_cas') sont créés en interne et utilisés pour appliquer les formats.

1 Bloc de code
CASL
Explication :
Ce bloc initialise une session Cloud Analytic Services (CAS) et assigne toutes les caslibs disponibles, permettant l'accès aux données et aux ressources CAS. Il liste ensuite toutes les bibliothèques de formats CAS actuellement chargées, donnant un aperçu de l'état initial des formats.
Copié !
1cas;
2caslib _all_ assign;
3 
4cas casauto listformats;
2 Bloc de code
DATA STEP Data
Explication :
Crée un jeu de données temporaire nommé 'cars' dans la bibliothèque WORK à partir du jeu de données SASHELP.CARS. Ce jeu de données sera utilisé par la suite pour créer des formats et des tables CAS.
Copié !
1DATA cars;
2 SET sashelp.cars;
3RUN;
3 Bloc de code
PROC FORMAT
Explication :
Ce bloc définit un format utilisateur 'enginesize' dans la bibliothèque WORK.FORMATS. Grâce à l'option `casfmtlib="casformats"`, une copie de ce format est automatiquement créée et ajoutée à une nouvelle bibliothèque de formats CAS nommée 'casformats'. Ce format catégorise les tailles de moteur en différentes catégories descriptives.
Copié !
1PROC FORMAT library=work.formats casfmtlib="casformats" ;
2 value enginesize
3 low - <2.7 = "Very economical"
4 2.7 - <4.1 = "Small"
5 4.1 - <5.5 = "Medium"
6 5.5 - <6.9 = "Large"
7 6.9 - high = "Very large";
8RUN;
4 Bloc de code
CASL
Explication :
Liste à nouveau les bibliothèques de formats CAS pour confirmer la création de la bibliothèque 'casformats' suite à l'exécution de PROC FORMAT.
Copié !
1cas casauto listformats;
5 Bloc de code
CASL
Explication :
Promeut la bibliothèque de formats 'casformats' pour la rendre globale et persistante en mémoire CAS. Cela permet à d'autres utilisateurs ou sessions CAS d'accéder à ce format sans avoir à le redéfinir.
Copié !
1cas casauto promotefmtlib fmtlibname='casformats';
6 Bloc de code
CASL
Explication :
Liste les bibliothèques de formats après la promotion pour vérifier le statut de la bibliothèque 'casformats' (elle devrait apparaître comme promue).
Copié !
1cas casauto listformats;
7 Bloc de code
CASL
Explication :
Sauvegarde la bibliothèque de formats 'casformats' dans un fichier SASHDAT nommé 'casfmt_table' au sein de la caslib 'formats'. Cette opération assure la persistance du format au-delà des redémarrages du serveur CAS.
Copié !
1cas casauto savefmtlib fmtlibname='casformats' caslib='formats' TABLE='casfmt_table' replace;
2 
8 Bloc de code
PROC CASUTIL
Explication :
Utilise PROC CASUTIL pour lister les fichiers présents dans la caslib 'formats' et confirmer que le fichier SASHDAT 'casfmt_table' contenant les formats a bien été créé et est accessible.
Copié !
1 
2PROC CASUTIL incaslib='formats';
3list files;
4QUIT;
5 
9 Bloc de code
DATA STEP Data
Explication :
Crée un jeu de données CAS nommé 'cars_cas' dans la caslib 'casuser' à partir de SASHELP.CARS, et applique le format 'enginesize' à la variable 'EngineSize'. Le bloc affiche ensuite les 10 premières observations du nouveau jeu de données pour vérifier l'application correcte du format CAS.
Copié !
1DATA casuser.cars_cas(replace=yes);
2 SET sashelp.cars;
3 FORMAT enginesize enginesize.;
4RUN;
5 
6PROC PRINT DATA=casuser.cars_cas(obs=10);
7var EngineSize;
8RUN;
10 Bloc de code
CASL
Explication :
Liste de nouveau les bibliothèques de formats CAS pour un état des lieux après l'utilisation du format.
Copié !
1cas casauto listformats;
11 Bloc de code
CASL
Explication :
Supprime la bibliothèque de formats 'CASFORMATS' de la session CAS active. L'option `fmtsearchremove` assure qu'elle est également retirée des chemins de recherche des formats.
Copié !
1cas casauto dropfmtlib fmtlibname=CASFORMATS fmtsearchremove;
2 
12 Bloc de code
CASL
Explication :
Liste les bibliothèques de formats CAS pour confirmer que 'CASFORMATS' a été supprimée de la session.
Copié !
1cas casauto listformats;
13 Bloc de code
CASL
Explication :
Tente de supprimer à nouveau la bibliothèque de formats 'CASFORMATS'. Le commentaire du code original indique qu'un message d'avertissement peut apparaître si la bibliothèque n'est plus trouvée, mais cette commande vise à s'assurer qu'elle est bien retirée de tout contexte.
Copié !
1cas casauto dropfmtlib fmtlibname=CASFORMATS fmtsearchremove;
2 
14 Bloc de code
CASL
Explication :
Liste les bibliothèques de formats CAS pour vérifier le résultat de la tentative de suppression globale.
Copié !
1cas casauto listformats;
15 Bloc de code
CASL
Explication :
Charge une bibliothèque de formats à partir du fichier SASHDAT 'casfmt_table' (précédemment sauvegardé) et la rend disponible sous le nouveau nom 'fmthdat' dans la session CAS.
Copié !
1cas casauto addfmtlib fmtlibname=fmthdat
2caslib=formats
3TABLE=casfmt_table;
4 
16 Bloc de code
CASL
Explication :
Liste les bibliothèques de formats CAS pour confirmer le chargement de 'fmthdat'.
Copié !
1cas casauto listformats;
17 Bloc de code
CASL
Explication :
Affiche les membres (formats individuels) de toutes les bibliothèques de formats chargées, puis liste spécifiquement les plages de valeurs et les étiquettes définies pour le format 'enginesize', validant son contenu et sa disponibilité.
Copié !
1cas casauto listformats members;
2cas casauto listfmtranges fmtname=enginesize;
3 
18 Bloc de code
DATA STEP Data
Explication :
Recrée le jeu de données CAS 'cars_cas' en utilisant le format 'enginesize' qui a été rechargé à partir du fichier SASHDAT, démontrant que le format est de nouveau actif et utilisable après un chargement depuis un stockage persistant.
Copié !
1DATA casuser.cars_cas(replace=yes);
2 SET sashelp.cars;
3 FORMAT enginesize enginesize.;
4RUN;
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.
Informations de Copyright : Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0