Publicado el :
Administración CREATION_INTERNE

Extracción de metadatos de las 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 las 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 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 SAS 9 (host, puerto, credenciales, repositorio de metadatos y protocolo).
¡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 Data Step realiza la extracción principal de metadatos. Busca objetos 'SASLibrary' configurados como bibliotecas de SGBD (sistema de gestión de bases de datos) a través de la función `metadata_resolve`. Para cada biblioteca encontrada, itera para recuperar atributos específicos (nombre de la biblioteca, usuario, esquema, etc.) y la información de los objetos relacionados (Login, Esquema, Conexión, Dominio de autenticación) utilizando las funciones `metadata_getnasn` (para asociaciones de objetos) y `metadata_getattr` (para atributos de objetos). Los resultados se almacenan luego en la tabla temporal '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.