/* Méthode standard - ne permet pas l'optimisation DVR directe */
proc casutil;
load data=maTableWork casout="maTableCAS";
quit;
1
/* Méthode standard - ne permet pas l'optimisation DVR directe */
2
PROC CASUTIL;
3
load DATA=maTableWork casout="maTableCAS";
4
QUIT;
El problema reside en que la instrucción LOAD DATA de PROC CASUTIL no ofrece una opción nativa para definir el deafaultmemoryFormat. Por lo tanto, la tabla se carga con el formato por defecto, consumiendo más memoria de la necesaria.
La falsa buena idea: La carga en dos pasos
Frente a esta limitación, una solución alternativa a menudo intentada consiste en:
Cargar la tabla normalmente (formato estándar).
Usar la acción table.copyTable para crear una copia comprimida en DVR.
Eliminar la tabla original.
Aunque funcional, este método es ineficiente ("clunky"). Duplica temporalmente el uso de la memoria y aumenta las entradas/salidas innecesariamente.
La Solución Óptima: La instrucción UPLOAD en PROC CAS
La instrucción UPLOAD no solo permite transferir el archivo, sino que también ofrece un control granular sobre los parámetros de salida (casout) y las opciones de importación.
Ventajas de este método
Directa: No necesita tabla temporal.
Compresión DVR: Aplicación inmediata de la reducción de duplicados.
Conversión VARCHAR: Posibilidad de convertir las cadenas de caracteres fijas a VARCHAR sobre la marcha, ofreciendo una reducción adicional del espacio de memoria.
Note :
Ejemplo de código
Así es como se carga una tabla ubicada en la biblioteca WORK directamente en formato DVR:
proc cas;
/* Nettoyage préalable si nécessaire */
action table.droptable / name="somedata" quiet=true;
/* Chargement optimisé */
upload /
/* Récupération dynamique du chemin physique de la table SAS */
path="%sysfunc(pathname(work))/somedata.sas7bdat"
/* Configuration de la table de sortie CAS */
casout={
caslib="casuser"
name="somedata"
promote=true, /* Rendre la table globale */
memoryformat="DVR", /* Activation de la compression DVR */
replication=0 /* Ajuster la réplication selon les besoins */
}
/* Options d'importation supplémentaires */
importoptions={
filetype="BASESAS",
varcharConversion=17 /* Convertit les CHAR > 16 octets en VARCHAR */
}
;
quit;
La opción varcharConversion es un complemento ideal para DVR. Mientras que DVR comprime los valores repetidos, el cambio al tipo VARCHAR reduce el espacio asignado a las cadenas de caracteres de longitud variable, maximizando así la eficiencia del almacenamiento.
Los códigos y ejemplos proporcionados en WeAreCAS.eu son con fines educativos. Es imperativo no copiarlos y pegarlos ciegamente en sus entornos de producción. El mejor enfoque es comprender la lógica antes de aplicarla. Recomendamos encarecidamente probar estos scripts en un entorno de prueba (Sandbox/Dev). WeAreCAS no acepta ninguna responsabilidad por cualquier impacto o pérdida de datos en sus sistemas.
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.