Publicado el :
ETL CREATION_INTERNE

Ejemplos: Uso de un motor SAS para procesar datos SAS

Este código también está disponible en: Deutsch English
En espera de validación
Análisis funcional detallado que explica los conceptos clave de cada motor SAS© y su aplicación. El motor V9 es el motor SAS© base predeterminado, el motor SPD está optimizado para tablas grandes y entornos distribuidos (como Hadoop), el motor CVP permite evitar el truncamiento de variables de caracteres durante la transcodificación, y el motor CAS permite cargar y procesar datos en memoria en un servidor de Cloud Analytic Services.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o SASHELP.

1 Bloque de código
DATA STEP Data
Explicación :
La instrucción LIBNAME asigna el libref myfiles y el motor V9 a la ubicación de una biblioteca. Reemplace 'library-path' con la ubicación de su biblioteca. La ubicación debe existir y ser accesible por el servidor de cómputo SAS. El paso DATA crea el conjunto de datos myclass en la biblioteca myfiles copiando el conjunto de datos class de la biblioteca sashelp.
¡Copiado!
1LIBNAME myfiles v9 'library-path';
2DATA myfiles.myclass;
3 SET sashelp.class;
4RUN;
2 Bloque de código
LIBNAME
Explicación :
Esta parte de la instrucción LIBNAME asigna el libref mylib y el motor SPD a un nombre de ruta principal. El primer (y generalmente el único) archivo de metadatos para un conjunto de datos siempre se almacena en la ruta principal de la biblioteca. Opcionalmente, puede asignar uno o más nombres de ruta en la opción DATAPATH= para almacenar las particiones de datos. De lo contrario, los archivos de partición de datos se almacenan en la ruta principal. Opcionalmente, puede asignar uno o más nombres de ruta en la opción INDEXPATH= para almacenar los archivos de índice. De lo contrario, los archivos de índice se almacenan en la ruta principal.
¡Copiado!
1LIBNAME mylib spde 'library-path'
2datapath=('path-for-
3data-partitions')
4indexpath=('path-for-indexes');
5 
3 Bloque de código
LIBNAME
Explicación :
La opción de sistema SET= define las variables de entorno para Hadoop. Si estas variables de entorno ya están definidas (por ejemplo, durante la configuración), no envíe estas líneas de código. Si estas variables de entorno no están definidas correctamente, la instrucción LIBNAME producirá errores en el registro de SAS. La instrucción LIBNAME asigna el libref mydata al motor SPD y a un directorio en el clúster de Hadoop. El argumento HDFS=YES especifica la conexión al clúster de Hadoop definido en los archivos de configuración del clúster de Hadoop. La opción ACCELWHERE=YES solicita que la creación del subconjunto de datos se realice mediante un programa MapReduce en el clúster de Hadoop.
¡Copiado!
1options SET=SAS_HADOOP_CONFIG_PATH='/myconfigpath';
2options SET=SAS_HADOOP_JAR_PATH='/myjarpath';
3 
4LIBNAME mydata spde '/data/abcdef' hdfs=yes accelwhere=yes;
4 Bloque de código
PROC COPY
Explicación :
Esta instrucción LIBNAME asigna la biblioteca srclib al motor CVP y a la ubicación de los datos que desea copiar. La opción CVPENGINE= especifica el motor V9 como motor subyacente para procesar los datos. La opción CVPMULT= especifica un factor de multiplicación de 2.5 para extender todas las variables de caracteres. Si no se especifica esta opción, el motor CVP elige automáticamente un valor multiplicador. Esta instrucción LIBNAME asigna la biblioteca de destino para contener los datos copiados. El procedimiento COPY con la instrucción SELECT copia el conjunto de datos myclass a la biblioteca de destino. Durante la copia, el motor CVP extiende las longitudes de las variables de caracteres 2.5 veces. El procedimiento CONTENTS muestra que las longitudes de las variables de caracteres se han multiplicado por 2.5: Para 'Name', 8 × 2.5 = 20. Para 'Sex', 1 × 2.5 = 2.5, lo que se redondea a 3.
¡Copiado!
1LIBNAME srclib cvp 'library-path-1' cvpengine=v9 cvpmult=2.5;
2LIBNAME target v9 'library-path-2';
3PROC COPY in=srclib out=target;
4 select myclass;
5RUN;
6 
7PROC CONTENTS DATA=target.myclass;
8RUN;
5 Bloque de código
DATA STEP / PROC CONTENTS Data
Explicación :
La instrucción CAS inicia una sesión CAS y especifica casauto como nombre de sesión CAS. Use su información de conexión en las opciones HOST= y PORT=. La instrucción LIBNAME asigna el libref mycas al motor CAS. La opción LIBNAME SESSREF= no se especifica, por lo que el motor usa la sesión casauto. El paso DATA copia el conjunto de datos SAS sashelp.cars a la sesión CAS. La opción de conjunto de datos PROMOTE=YES promueve la tabla con un alcance global. El procedimiento CONTENTS muestra que la tabla mycas.cars está disponible en el servidor CAS durante la duración de la sesión. Una vez que los datos se cargan en memoria, los pasos siguientes pueden procesar los datos en memoria. La carga y el procesamiento se realizan en pasos separados.
¡Copiado!
1cas casauto host="cloud.example.com" port=5570;
2 
3LIBNAME mycas cas;
4DATA mycas.cars (promote=yes);
5 SET sashelp.cars;
6RUN;
7PROC CONTENTS DATA=mycas.cars;
8RUN;
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