Veröffentlicht am :
Administration CREATION_INTERNE

Extrahieren von Datenbank-Bibliotheksinformationen aus Metadaten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Programm verbindet sich mit einem SAS© 9 Metadaten-Server, um alle Datenbanktyp-Bibliotheken (`IsDBMSLibname = '1'`) zu identifizieren. Für jede gefundene Bibliothek werden zugehörige Informationen wie Bibliotheksname, Standard-Login-Benutzer, Anwendungsserver, Schema, Datenbankservername, Datenquelle und Authentifizierungsdomäne abgerufen. Die Ergebnisse werden in einer Tabelle `work.libinfo` gespeichert. Dieser Code ist spezifisch für SAS© 9 und nicht kompatibel mit SAS© Viya, da er `metadata_*` Funktionen verwendet, die mit dem älteren Metadaten-Server interagieren.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden dynamisch durch Abfragen der SAS Server-Metadaten mithilfe der spezifischen Funktionen `metadata_resolve`, `metadata_getnobj`, `metadata_getattr` und `metadata_getnasn` generiert. Das Skript liest keine externen Daten oder Daten aus SASHELP.

1 Codeblock
OPTIONS
Erklärung :
Dieser Block konfiguriert die globalen Optionen der SAS-Sitzung, um eine Verbindung zu einem SAS 9 Metadaten-Server herzustellen. Er spezifiziert die Serveradresse, den Port, die Anmeldeinformationen, den Repository-Namen und das Verbindungsprotokoll. Diese Parameter sind für die Verwendung der `metadata_*`-Funktionen in den folgenden Schritten unerlässlich.
Kopiert!
1options
2 metaserver="<hostname>"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="<password>"
6 metarepository=Foundation
7 metaprotocol=bridge;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP erstellt die Tabelle `work.libinfo`. Er beginnt mit der Suche nach allen DBMS-Typ-Bibliotheken in den SAS-Metadaten über `metadata_resolve`. Anschließend wird jede gefundene Bibliothek durchlaufen, um spezifische Attribute (Bibliotheksname, Benutzer, Schema, Datenbankserver usw.) mithilfe einer Reihe von `metadata_get...`-Funktionen zu extrahieren. Die für jede Bibliothek gesammelten Informationen werden als neue Zeile in die Ausgabetabelle eingefügt.
Kopiert!
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 
16 libcount=metadata_resolve(obj,type,id);
17 put "INFO: Found " libcount "database libraries.";
18 /* for each library found, extract name and associated properties */
19 /*
20 default login,
21 first associated application server,
22 schema,
23 database server
24 */
25 IF libcount > 0 THEN DO n=1 to libcount;
26 
27 rc=metadata_getnobj(obj,n,lib_uri);
28 rc=metadata_getattr(lib_uri,"Name",lib_name);
29 rc=metadata_getnasn(lib_uri,"DefaultLogin",1,login_uri);
30 rc=metadata_getattr(login_uri,"UserID",user);
31 rc=metadata_getnasn(lib_uri,"DeployedComponents",1,app_uri);
32 rc=metadata_getattr(app_uri,"Name",app_name);
33 rc=metadata_getnasn(lib_uri,"UsingPackages",1,schema_uri);
34 rc=metadata_getattr(schema_uri,"SchemaName",schema);
35 rc=metadata_getnasn(schema_uri,"DeployedComponents",1,dbms_uri);
36 rc=metadata_getattr(dbms_uri,"Name",dbms_name);
37 rc=metadata_getnasn(dbms_uri,"SourceConnections",1,conn_uri);
38 rc=metadata_getnasn(conn_uri,"Properties",1,prop_uri);
39 rc=metadata_getattr(prop_uri,"DefaultValue",datasrc);
40 rc=metadata_getnasn(conn_uri,"Domain",1,dom_uri);
41 rc=metadata_getattr(dom_uri,"Name",authdomain);
42 OUTPUT; /* Push results to table */
43 
44 END;
45 ELSE put "INFO: No libraries to resolve.";
46RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0