Publicado el :
Administración CREATION_INTERNE

Extracción de metadatos de bibliotecas de bases de datos

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Este programa se conecta a un servidor de metadatos SAS© (tecnología SAS© 9) para inventariar bibliotecas de tipo SGBD (DBMS). Utiliza las funciones de interfaz de metadatos de SAS© (`metadata_resolve`, `metadata_get...`) para extraer información de configuración como el nombre de la biblioteca, el servidor de aplicaciones, el esquema, el servidor de bases de datos, las conexiones de origen y los dominios de autenticación. Aunque técnicamente ejecutable en SAS© Viya, depende de la presencia y la conexión a un servidor de metadatos SAS© 9 heredado.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan dinámicamente mediante la consulta de objetos del servidor de metadatos a través de llamadas a funciones del sistema.

1 Bloque de código
GLOBAL OPTIONS
Explicación :
Definición de los parámetros de conexión al servidor de metadatos (host, puerto, credenciales).
¡Copiado!
1options
2 metaserver="<hostname>"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="<password>"
6 metarepository=Foundation
7 metaprotocol=bridge;
2 Bloque de código
DATA STEP Data
Explicación :
Este bloque de Data Step realiza la extracción principal. Inicializa una búsqueda de objetos de tipo 'SASLibrary' configurados como SGBD. Luego, itera sobre cada biblioteca encontrada para recuperar sus atributos y objetos relacionados (Login, Schema, Connection, Domain) a través de las funciones 'metadata_getnasn' (asociaciones) y 'metadata_getattr' (atributos), y luego almacena el resultado en la tabla 'work.libinfo'.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Author: Greg Wootton Date: 22DEC2016