/* 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 ist, dass die LOAD DATA-Anweisung von PROC CASUTIL keine native Option bietet, um das deafaultmemoryFormat zu definieren. Daher wird die Tabelle im Standardformat geladen, was mehr Speicher als nötig verbraucht.
Die vermeintlich gute Idee: Zweistufiges Laden
Angesichts dieser Einschränkung besteht eine häufig versuchte Umgehung darin:
Die Tabelle normal zu laden (Standardformat).
Die table.copyTable-Aktion zu verwenden, um eine komprimierte Kopie in DVR zu erstellen.
Die ursprüngliche Tabelle zu löschen.
Obwohl diese Methode funktioniert, ist sie ineffizient („klobig“). Sie verdoppelt vorübergehend den Speicherverbrauch und erhöht unnötig die E/A-Operationen.
Die optimale Lösung: Die UPLOAD-Anweisung in PROC CAS
Die UPLOAD-Anweisung ermöglicht nicht nur die Übertragung der Datei, sondern bietet auch eine granulare Kontrolle über die Ausgabeparameter (casout) und Importoptionen.
Vorteile dieser Methode
Direkt: Keine temporäre Tabelle erforderlich.
DVR-Komprimierung: Sofortige Anwendung der Duplikat-Reduzierung.
VARCHAR-Konvertierung: Möglichkeit, feste Zeichenketten im laufenden Betrieb in VARCHAR zu konvertieren, was eine zusätzliche Reduzierung des Speicherplatzes bietet.
Note :
Code-Beispiel
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 varcharConversion-Option ist eine ideale Ergänzung zu DVR. Während DVR wiederholte Werte komprimiert, reduziert der Wechsel zum VARCHAR-Typ den für Zeichenketten variabler Länge zugewiesenen Speicherplatz und maximiert so die Speichereffizienz.
Die auf WeAreCAS.eu bereitgestellten Codes und Beispiele dienen Lehrzwecken. Es ist zwingend erforderlich, sie nicht blind in Ihre Produktionsumgebungen zu kopieren. Der beste Ansatz besteht darin, die Logik zu verstehen, bevor sie angewendet wird. Wir empfehlen dringend, diese Skripte in einer Testumgebung (Sandbox/Dev) zu testen. WeAreCAS übernimmt keine Verantwortung für mögliche Auswirkungen oder Datenverluste auf Ihren Systemen.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.