Publicado el :
ETL CREATION_INTERNE

Conversión de tipo de carácter a varchar al cargar en CAS

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza inicializando un entorno CAS definiendo un LIBNAME CASWORK y configurando las opciones de usuario para dirigir las tablas de un solo nivel a esta CASLIB. Luego usa `PROC CAS` para gestionar dinámicamente las CASLIBs, eliminando si es necesario y añadiendo una nueva CASLIB 'sas©7bdat' que apunta a una ruta de datos. Se crean datos de prueba con variables de tipo carácter de varias longitudes mediante un paso DATA. La parte central del script es el uso de `PROC CASUTIL` con la opción `importoptions=(filetype="basesas" varcharconversion=16)` para cargar la tabla de datos en CAS, convirtiendo así las variables de carácter a VARCHAR y truncándolas a una longitud máxima de 16 bytes. Finalmente, se utiliza `PROC CAS` para mostrar la información detallada de las columnas de la tabla CAS resultante, permitiendo verificar la aplicación de la conversión VARCHAR.
Análisis de datos

Type : CREATION_INTERNE


Los datos de origen ('table_with_char') se generan directamente dentro del script mediante un paso DATA SAS para fines de demostración.

1 Bloque de código
Configuration
Explicación :
Este bloque configura un LIBNAME `CASWORK` para establecer una conexión al motor Cloud Analytic Services (CAS) a través de la CASLIB 'casuser'. La instrucción `options USER = CASWORK;` define la CASLIB predeterminada para las tablas de un solo nivel. Finalmente, `%put &_sessref_;` muestra el identificador de la sesión CAS activa.
¡Copiado!
1LIBNAME CASWORK cas caslib=casuser;
2options USER = CASWORK;
3 
4%put &_sessref_;
2 Bloque de código
PROC CAS
Explicación :
Este bloque utiliza `PROC CAS` para interactuar directamente con el controlador CAS. Elimina silenciosamente las CASLIBs 'sas7bdat' y 'sashdat' si existen, para asegurar un entorno limpio. Luego, añade una nueva CASLIB llamada 'sas7bdat' que apunta a una ruta del sistema de archivos (`&datapath`). La instrucción `caslib _all_ assign;` se utiliza para vincular todas las librefs CAS y las CASLIBs predeterminadas a la sesión SAS cliente.
¡Copiado!
1PROC CAS;
2 file log;
3 TABLE.dropCaslib /
4 caslib='sas7bdat' quiet = true;
5RUN;
6 TABLE.dropCaslib /
7 caslib='sashdat' quiet = true;
8RUN;
9 addcaslib /
10 datasource={srctype="path"}
11 name="sas7bdat"
12 path="&datapath" ;
13 RUN;
14QUIT;
15/* Binds all CAS librefs and default CASLIBs to your SAS client */
16caslib _all_ assign;
3 Bloque de código
DATA STEP Data
¡Copiado!
1DATA sas7bdat.table_with_char;
2 LENGTH a $ 300 b $ 15 c $ 16;
3 a='a300'; b='b15' ; c='c16' ; OUTPUT;
4 a='a300300'; b='b151515'; c='c161616'; OUTPUT;
5 c='c161616161616161';
6 b='b15151515151515';
7 a="a300qzwsxedcrfvtgbyhnujmiklopqazwsxedcrfvtgbyhnujmikolp12345678901234567890123456789012345678901234567890123456789012345678901234567890"; OUTPUT;
8RUN;
4 Bloque de código
PROC CASUTIL
¡Copiado!
1PROC CASUTIL;
2 load casdata="table_with_char.sas7bdat" incaslib="sas7bdat" outcaslib="casuser"
3 casout="table_with_varchar" importoptions=(filetype="basesas" varcharconversion=16) replace;
4RUN;
5 Bloque de código
PROC CAS
¡Copiado!
1PROC CAS;
2 sessionProp.setSessOpt /
3 caslib="casuser";
4RUN;
5 TABLE.columninfo / TABLE="table_with_varchar";
6QUIT;
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 © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0