Publié le :
Administration CREATION_INTERNE

Extraction des Répertoires de Déploiement des Métadonnées

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le programme établit une connexion au serveur de métadonnées SAS© en utilisant les options 'metaserver', 'metaport', 'metauser', 'metapass', 'metarepository' et 'metaprotocol'. Il initialise ensuite un pas DATA pour interroger les métadonnées. Le script utilise les fonctions 'metadata_resolve', 'metadata_getnobj', 'metadata_getnasn' et 'metadata_getattr' pour identifier les objets 'Directory' ayant un 'ServerContext' associé (désignant des répertoires de déploiement). Pour chaque répertoire trouvé, il récupère son nom, son chemin, les applications associées, les fichiers contenus et, si des transformations (jobs) sont liées aux fichiers, le nom du job et le responsable. Les informations collectées sont stockées dans la table 'work.deployfiles'. Enfin, la PROC PRINT est utilisée pour afficher le contenu de cette table.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées dynamiquement en interrogeant l'environnement de métadonnées SAS via les fonctions SAS Metadata Interface. Aucune source de données externe (fichiers, bases de données, etc.) n'est lue directement par le script.

1 Bloc de code
OPTIONS
Explication :
Ce bloc configure la connexion au serveur de métadonnées SAS, spécifiant l'adresse, le port, les informations d'identification, le référentiel et le protocole. Ces options sont cruciales pour permettre au script d'interagir avec l'environnement de métadonnées.
Copié !
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=BRIDGE;
2 Bloc de code
DATA STEP Data
Explication :
Ce pas DATA se connecte aux métadonnées SAS pour extraire des informations sur les répertoires de déploiement. Il utilise les fonctions SAS Metadata Interface pour résoudre les objets de répertoire, récupérer leurs attributs (nom, chemin) ainsi que les applications, fichiers et jobs associés. Les variables sont déclarées et conservées pour former un nouvel ensemble de données 'work.deployfiles' contenant les détails des répertoires, fichiers et propriétaires de jobs.
Copié !
1DATA work.deployfiles;
2 
3 /* declare and initialize variables */
4 LENGTH app_name type dir_uri app_uri dir_name file_uri file_name owner
5 trans_uri resp_uri job_name $ 50 id $ 17 dir_path $ 255;
6 call missing(of _character_);
7 
8 /* variables to store to table */
9 keep app_name dir_name dir_path file_name owner job_name;
10 
11 /* Define a query to find deployment directories (directory objects with an */
12 /* associated server context). */
13 dir_obj="omsobj:Directory?Directory[ @code_sas_json/downside_frequency_test.json contains '.'][DeployedComponents/ServerContext]";
14 /* Count number of directories with an associated server context. */
15 dir_rc=metadata_resolve(dir_obj,type,id);
16 
17 /* if directories exist, pull data from them. */
18 IF dir_rc > 0 THEN DO n=1 to dir_rc;
19 
20 rc=metadata_getnobj(dir_obj,n,dir_uri);
21 rc=metadata_getnasn(dir_uri,"DeployedComponents",1,app_uri);
22 rc=metadata_getattr(app_uri,"Name",app_name);
23 rc=metadata_getattr(dir_uri,"Name",dir_name);
24 rc=metadata_getattr(dir_uri,"DirectoryName",dir_path);
25 
26 file_rc=metadata_getnasn(dir_uri,"Files",1,file_uri);
27 
28 /* if files are associated with the directory, pull data on them. */
29 IF file_rc > 0 THEN DO m=1 to file_rc;
30 
31 rc=metadata_getnasn(dir_uri,"Files",m,file_uri);
32 rc=metadata_getattr(file_uri,"FileName",file_name);
33 trans_rc=metadata_getnasn(file_uri,"AssociatedTransformation",1,trans_uri);
34 
35 /* if jobs are associated with the files, pull the responsible */
36 /* party of that job. */
37 IF trans_rc > 0 THEN DO o=1 to trans_rc;
38 
39 rc=metadata_getnasn(file_uri,"AssociatedTransformation",o,trans_uri);
40 rc=metadata_getattr(trans_uri,"Name",job_name);
41 rc=metadata_getnasn(trans_uri,"ResponsibleParties",1,resp_uri);
42 rc=metadata_getattr(resp_uri,"Name",owner);
43 OUTPUT;
44 END;
45 ELSE put "INFO: No Associations Found";
46 END;
47 ELSE put "INFO: No Associated Files Found";
48 
49 END;
50 ELSE put "INFO: No Deployment Directories Found";
51RUN;
3 Bloc de code
PROC PRINT
Explication :
Cette procédure génère un rapport lisible en affichant le contenu de la table 'work.deployfiles' qui a été créée lors du pas DATA précédent. Elle permet de visualiser les répertoires de déploiement et leurs informations extraites des métadonnées.
Copié !
1PROC PRINT DATA=deployfiles; RUN;
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 : This program pulls a list of Deployment Directories to Metadata. Author: Greg Wootton Date: 09DEC2016


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« La gestion d'une plateforme SAS stable repose sur une visibilité parfaite des objets déployés. L'utilisation des fonctions de métadonnées DATA step est la méthode la plus puissante pour auditer les liens complexes entre les répertoires physiques, les fichiers de code et les jobs planifiés. Ce script ne se contente pas de lister des fichiers : il reconstitue la chaîne de dépendances de votre environnement. »