/* 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;
Das Problem liegt darin, dass die Anweisung LOAD DATA von PROC CASUTIL keine native Option zur Definition des deafaultmemoryFormat bietet. Folglich wird die Tabelle mit dem Standardformat geladen, was mehr Speicher als nötig verbraucht.
Die falsche gute Idee: Das zweistufige Laden
Angesichts dieser Einschränkung besteht eine oft versuchte Umgehungslösung darin, ...
Tabelle normal laden (Standardformat).
Verwenden Sie die Aktion table.copyTable, um eine komprimierte Kopie in DVR zu erstellen.
Die Originaltabelle löschen.
Obwohl funktionsfähig, ist diese Methode ineffizient ("schwerfällig"). Sie verdoppelt vorübergehend die Speichernutzung und erhöht unnötigerweise die Ein-/Ausgabe.
Die optimale Lösung: Die UPLOAD-Anweisung in PROC CAS
Die Anweisung UPLOAD ermöglicht nicht nur die Dateiübertragung, sondern bietet auch eine granulare Kontrolle über die Ausgabeparameter (casout) und die Importoptionen.
Vorteile dieser Methode
Direkt: Keine temporäre Tabelle nötig.
DVR-Komprimierung: Sofortige Duplikatreduzierung.
VARCHAR-Konvertierung: Möglichkeit, feste Zeichenketten zur Laufzeit in VARCHAR zu konvertieren, was eine zusätzliche Speicherplatzersparnis bietet.
Note :
Codebeispiel
So laden Sie eine Tabelle aus der WORK-Bibliothek direkt im DVR-Format:
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;
Die Option varcharConversion ist eine ideale Ergänzung zum DVR. Während der DVR wiederholte Werte komprimiert, reduziert die Umstellung auf den Typ VARCHAR den für Zeichenfolgen variabler Länge zugewiesenen Speicherplatz und maximiert so die Speichereffizienz.
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.