Análisis funcional detallado de los diferentes enfoques para la importación y exportación de datos externos. Cubre el uso de PROC IMPORT para archivos CSV y Excel, la creación de tablas en un SGBD a través de un paso DATA, la integración de declaraciones LIBNAME en vistas PROC SQL, la explotación de la función SQL Pass-Through, así como la importación de datos XML y JSON utilizando los motores XMLV2 y JSON, respectivamente. Cada ejemplo está diseñado para ser autónomo, proporcionando los medios para adquirir o crear los datos necesarios.
Análisis de datos
Type : MIXTE
Los ejemplos utilizan datos externos (CSV, Excel, XML, JSON) cuya adquisición se explica o datos creados internamente (datalines) para demostraciones de SGBD.
1 Bloque de código
PROC HTTP / PROC IMPORT
Explicación : Este ejemplo utiliza la instrucción FILENAME para asignar la referencia de archivo 'chol' a un archivo temporal. El procedimiento HTTP se usa luego para descargar un archivo CSV de una URL especificada y guardarlo en la referencia de archivo 'chol'. El procedimiento IMPORT lee los datos CSV y crea el conjunto de datos SAS 'work.mycholesterol'. Finalmente, PROC PRINT muestra el contenido del conjunto de datos para verificar la importación.
Explicación : Este ejemplo importa datos de un archivo de Microsoft Excel (.xlsx) usando el procedimiento IMPORT y el motor XLSX. Para que este ejemplo sea autónomo, primero debe crear un archivo Excel llamado 'cholesterol.xlsx' (por ejemplo, guardando el archivo 'cholesterol.csv' del ejemplo anterior en formato .xlsx). La opción 'VALIDVARNAME=V7' se utiliza para convertir los nombres de columna de Excel en nombres de variables SAS válidos (reemplazando los espacios por guiones bajos). El motor XLSX requiere que la interfaz SAS/ACCESS to PC Files esté configurada. La opción REPLACE permite reemplazar un conjunto de datos SAS existente.
Explicación : Este ejemplo muestra cómo crear una tabla directamente en un sistema de gestión de base de datos (SGBD) externo, aquí Teradata. La instrucción LIBNAME 'mytddata' se define para establecer una conexión al servidor Teradata, incluyendo la información de identificación. Luego se utiliza un paso DATA para crear una tabla llamada 'grades' en este SGBD usando 'datalines' para proporcionar los datos. El procedimiento DATASETS se utiliza para mostrar la información de la biblioteca 'mytddata', confirmando que la tabla ha sido creada en el SGBD.
Explicación : Este ejemplo ilustra la creación de una vista SAS (mygrades en la biblioteca viewlib) que integra una instrucción LIBNAME para una conexión a una base de datos Teradata. La libref 'viewlib' se asigna a la ubicación donde se almacenará la vista SAS, utilizando el motor V9. La cláusula 'USING' de la instrucción 'CREATE VIEW' permite incrustar los detalles de conexión al SGBD, lo que hace que la vista sea autosuficiente para acceder a la tabla 'mytddata.grades'. Finalmente, PROC PRINT ejecuta esta vista y muestra su contenido.
¡Copiado!
libname viewlib v9 'library-path';
proc sql;
create view viewlib.mygrades as
select *
from mytddata.grades
using libname mytddata teradata
server=mytera
user=myid password=mypw;
quit;
proc print data=viewlib.mygrades noobs;
run;
1
LIBNAME viewlib v9 'library-path';
2
PROC SQL;
3
create view viewlib.mygrades as
4
select *
5
from mytddata.grades
6
using LIBNAME mytddata teradata
7
server=mytera
8
user=myid password=mypw;
9
QUIT;
10
PROC PRINTDATA=viewlib.mygrades noobs;
11
RUN;
5 Bloque de código
PROC SQL
Explicación : Este ejemplo utiliza la función SQL Pass-Through dentro de PROC SQL para enviar consultas SQL directamente a una base de datos externa (Teradata). La instrucción 'CONNECT TO' establece una conexión llamada 'myconn' al servidor Teradata con la información de identificación especificada. Luego, una cláusula 'SELECT * FROM CONNECTION TO myconn (...)' permite ejecutar una consulta SQL nativa (filtrando los 'grades' con 'final gt 90') directamente en el SGBD. La instrucción 'DISCONNECT FROM' se utiliza para terminar la conexión a la base de datos después de la ejecución de la consulta.
¡Copiado!
proc sql;
connect to teradata as myconn (server=mytera
user=myid password=mypw);
select *
from connection to myconn
(select *
from grades
where final gt 90);
disconnect from myconn;
quit;
1
PROC SQL;
2
connect to teradata as myconn (server=mytera
3
user=myid password=mypw);
4
select *
5
from connection to myconn
6
(select *
7
from grades
8
where final gt 90);
9
disconnect from myconn;
10
QUIT;
6 Bloque de código
LIBNAME / PROC PRINT
Explicación : Este ejemplo importa datos de un archivo XML usando el motor XMLV2. Para que este ejemplo sea autónomo, cree un archivo llamado 'nhl.xml' con el siguiente contenido XML, y reemplace 'file-path' por la ruta real:
```xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<NHL>
<CONFERENCE> Eastern
<DIVISION> Southeast
<TEAM name="Thrashers" abbrev="ATL" />
<TEAM name="Hurricanes" abbrev="CAR" />
<TEAM name="Panthers" abbrev="FLA" />
<TEAM name="Lightning" abbrev="TB" />
<TEAM name="Capitals" abbrev="WSH" />
</DIVISION>
</CONFERENCE>
<CONFERENCE> Western
<DIVISION> Pacific
<TEAM name="Stars" abbrev="DAL" />
<TEAM name="Kings" abbrev="LA" />
<TEAM name="Ducks" abbrev="ANA" />
<TEAM name="Coyotes" abbrev="PHX" />
<TEAM name="Sharks" abbrev="SJ" />
</DIVISION>
</CONFERENCE>
</NHL>
```
La instrucción FILENAME asigna la referencia de archivo 'nhl' al archivo XML. Una segunda instrucción FILENAME asigna la referencia de archivo 'map' a un archivo que almacenará el XMLMap generado. La instrucción LIBNAME, con el motor XMLV2 y las opciones 'AUTOMAP=REPLACE' y 'XMLMAP=map', lee el archivo XML y genera un XMLMap. PROC PRINT muestra luego las variables 'TEAM_name' y 'TEAM_abbrev' del conjunto de datos 'nhl.team' creado en memoria.
¡Copiado!
filename nhl 'file-path/nhl.xml';
filename map 'file-path/nhlgenerate.map';
libname nhl xmlv2 automap=replace xmlmap=map;
proc print data=nhl.team noobs;
var TEAM_name TEAM_abbrev;
run;
1
filename nhl 'file-path/nhl.xml';
2
filename map 'file-path/nhlgenerate.map';
3
LIBNAME nhl xmlv2 automap=replace xmlmap=map;
4
PROC PRINTDATA=nhl.team noobs;
5
var TEAM_name TEAM_abbrev;
6
RUN;
7 Bloque de código
LIBNAME / PROC DATASETS
Explicación : Este ejemplo importa datos JSON usando el motor JSON. Para que este ejemplo sea autónomo, cree un archivo llamado 'example.json' con contenido JSON válido (por ejemplo, un objeto JSON simple con algunos campos y valores) y reemplace 'file-path' por la ruta real. La instrucción LIBNAME 'mydata' se asigna al motor JSON y apunta al archivo 'example.json'. El procedimiento DATASETS se usa luego para listar los conjuntos de datos SAS creados en memoria a partir de este archivo JSON, verificando así la importación.
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.