Publicado el :

Uso de los Motores SAS para Procesar Datos Externos

Este código también está disponible en: Deutsch English Français
En espera de validación
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.
¡Copiado!
1filename chol temp;
2PROC HTTP
3 url="http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/cholesterol.csv"
4 out=chol;
5QUIT;
6PROC IMPORT datafile=chol
7 out=work.mycholesterol
8 dbms=csv
9 replace;
10RUN;
11PROC PRINT DATA=work.mycholesterol;
12RUN;
2 Bloque de código
PROC IMPORT
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.
¡Copiado!
1options validvarname=v7;
2PROC IMPORT datafile='cholesterol.xlsx'
3 dbms=xlsx
4 out=work.mycholesterol
5 replace;
6RUN;
3 Bloque de código
LIBNAME / DATA STEP Data
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.
¡Copiado!
1LIBNAME mytddata teradata server=mytera user=myid password=mypw;
2DATA mytddata.grades;
3 INPUT student $ test1 test2 final;
4 DATALINES;
5Fred 66 80 70
6Wilma 97 91 98
7;
8PROC DATASETS library=mytddata;
9RUN;
10QUIT;
4 Bloque de código
PROC SQL
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!
1LIBNAME viewlib v9 'library-path';
2PROC 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;
9QUIT;
10PROC PRINT DATA=viewlib.mygrades noobs;
11RUN;
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!
1PROC 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;
10QUIT;
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!
1filename nhl 'file-path/nhl.xml';
2filename map 'file-path/nhlgenerate.map';
3LIBNAME nhl xmlv2 automap=replace xmlmap=map;
4PROC PRINT DATA=nhl.team noobs;
5 var TEAM_name TEAM_abbrev;
6RUN;
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.
¡Copiado!
1LIBNAME mydata json '/file-path/example.json';
2PROC DATASETS lib=mydata;
3RUN;
4QUIT;
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 : Copyright © SAS Institute Inc. All Rights Reserved. Last updated: December 16, 2025