Publié le :
Administration CREATION_INTERNE

Extraction des métadonnées des bibliothèques de base de données

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Ce programme se connecte à un serveur de métadonnées SAS© (technologie SAS© 9) pour inventorier les bibliothèques de type SGBD (DBMS). Il utilise les fonctions SAS© d'interface de métadonnées (`metadata_resolve`, `metadata_get...`) pour extraire des informations de configuration telles que le nom de la bibliothèque, le serveur d'application, le schéma, le serveur de base de données, les connexions sources et les domaines d'authentification. Bien que techniquement exécutable en SAS© Viya, il dépend de la présence et de la connexion à un serveur de métadonnées SAS© 9 hérités.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées dynamiquement par l'interrogation des objets du serveur de métadonnées via des appels de fonctions système.

1 Bloc de code
GLOBAL OPTIONS
Explication :
Définition des paramètres de connexion au serveur de métadonnées SAS 9 (hôte, port, identifiants, dépôt de métadonnées et protocole).
Copié !
1options
2 metaserver="<hostname>"
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 bloc Data Step effectue l'extraction principale des métadonnées. Il recherche les objets 'SASLibrary' configurés comme bibliothèques de SGBD (système de gestion de base de données) via la fonction `metadata_resolve`. Pour chaque bibliothèque trouvée, il itère pour récupérer des attributs spécifiques (nom de la bibliothèque, utilisateur, schéma, etc.) et les informations des objets liés (Login, Schéma, Connexion, Domaine d'authentification) en utilisant les fonctions `metadata_getnasn` (pour les associations d'objets) et `metadata_getattr` (pour les attributs d'objets). Les résultats sont ensuite stockés dans la table temporaire 'work.libinfo'.
Copié !
1DATA work.libinfo;
2 
3 /*declare and initialize variables */
4 LENGTH
5 type user schema $ 20
6 lib_uri lib_name app_uri app_name schema_uri login_uri dom_uri
7 dbms_uri dbms_name conn_uri prop_uri datasrc authdomain $ 50
8 id $ 17;
9 keep lib_name app_name user schema dbms_name datasrc authdomain;
10 call missing(of _character_);
11 
12 obj="omsobj:SASLibrary? @IsDBMSLibname = '1'";
13 
14 /* Search Metadata for libraries */
15 libcount=metadata_resolve(obj,type,id);
16 put "INFO: Found " libcount "database libraries.";
17 
18 IF libcount > 0 THEN DO n=1 to libcount;
19 rc=metadata_getnobj(obj,n,lib_uri);
20 rc=metadata_getattr(lib_uri,"Name",lib_name);
21 rc=metadata_getnasn(lib_uri,"DefaultLogin",1,login_uri);
22 rc=metadata_getattr(login_uri,"UserID",user);
23 rc=metadata_getnasn(lib_uri,"DeployedComponents",1,app_uri);
24 rc=metadata_getattr(app_uri,"Name",app_name);
25 rc=metadata_getnasn(lib_uri,"UsingPackages",1,schema_uri);
26 rc=metadata_getattr(schema_uri,"SchemaName",schema);
27 rc=metadata_getnasn(schema_uri,"DeployedComponents",1,dbms_uri);
28 rc=metadata_getattr(dbms_uri,"Name",dbms_name);
29 rc=metadata_getnasn(dbms_uri,"SourceConnections",1,conn_uri);
30 rc=metadata_getnasn(conn_uri,"Properties",1,prop_uri);
31 rc=metadata_getattr(prop_uri,"DefaultValue",datasrc);
32 rc=metadata_getnasn(conn_uri,"Domain",1,dom_uri);
33 rc=metadata_getattr(dom_uri,"Name",authdomain);
34 OUTPUT; /* Push results to table */
35 END;
36 ELSE put "INFO: No libraries to resolve.";
37RUN;
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
Michael
Responsable de l'infrastructure Viya.
« Bien que ce code soit un standard de l'administration SAS 9, il nécessite une attention particulière en environnement SAS Viya. Viya utilise principalement des CASLIBs dont les métadonnées sont gérées par des micro-services (REST API). Ce script ne pourra lister que les bibliothèques d'un serveur SAS 9 distant connecté à Viya, et non les ressources natives de l'architecture Cloud. »