ETL CAS

Datenkomprimierung in SAS Viya

Dieser Code ist auch verfügbar auf: English Español
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
SAS© Cloud Analytic Services unterstützt die Komprimierung von In-Memory-Tabellen. Wenn eine Tabelle über einen DATA Step oder PROC CAS mit der Option COMPRESS=YES geladen oder erstellt wird, komprimiert der CAS-Server die Zeilen. Die Komprimierung gilt für alle Variablen (Zeichen und numerische) und alle Zeilen der Tabelle. Obwohl die Komprimierung den Speicherverbrauch reduziert, kann sie zu einer Leistungsverschlechterung bei Operationen führen, die die Dekomprimierung von Datenblöcken erfordern. Die Komprimierungsraten variieren je nach Datentyp, wobei Zeichenvariablen mit vielen Leerzeichen in der Regel besser komprimiert werden. Spezifische Überlegungen gelten bei der Verwendung von WHERE-Klauseln oder SASHDAT-Tabellen.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder die SASHELP-Bibliothek.

1 Codeblock
DATA Step Data
Erklärung :
Dieses Beispiel demonstriert die Erstellung einer komprimierten CAS-Tabelle aus einer vorhandenen Tabelle mittels DATA Step. Die Option `compress=yes` wird in den Optionen der Ausgabetabelle angegeben und weist CAS an, die Daten im Speicher zu komprimieren. Eine `PROC CASUTIL CONTENTS` wird verwendet, um die Eigenschaften der Tabelle, einschließlich des Komprimierungsstatus, zu überprüfen.
Kopiert!
1/* Établit une connexion CAS (à adapter à votre environnement) */
2LIBNAME mycas cas caslib=casuser;
3 
4/* Crée une table non compressée pour l'exemple */
5DATA mycas.ventes_non_compresse;
6 LENGTH produit $20 quantite prix 8;
7 INPUT produit $ quantite prix;
8 DATALINES;
9Pomme 10 1.50
10Banane 5 0.75
11Orange 12 1.20
12;
13RUN;
14 
15/* Crée une copie compressée de la table 'ventes_non_compresse' */
16DATA mycas.ventes_compresse (compress=yes);
17 SET mycas.ventes_non_compresse;
18RUN;
19 
20/* Affiche les propriétés de la table compressée (y compris la compression) */
21PROC CASUTIL incaslib="casuser" outcaslib="casuser";
22 contents casdata="ventes_compresse";
23RUN;
24QUIT;
2 Codeblock
DATA Step Data
Erklärung :
Dieses Beispiel zeigt, wie neue Zeilen zu einer bereits komprimierten CAS-Tabelle hinzugefügt werden. Die Option `append=yes` wird im DATA Step verwendet. Die neuen Zeilen, auch wenn sie im Hinzufügen-DATA Step nicht explizit komprimiert werden, werden vom CAS-Server automatisch komprimiert, da die Tabelle `mycas.ventes_compresse` bereits als komprimiert definiert ist. Dies wird durch das Fehlen der Option `compress=yes` im Hinzufügen-DATA Step demonstriert.
Kopiert!
1/* Établit une connexion CAS (à adapter à votre environnement) */
2LIBNAME mycas cas caslib=casuser;
3 
4/* Assurez-vous que la table compressée de l'exemple 1 existe */
5PROC CASUTIL incaslib="casuser" outcaslib="casuser";
6 load casdata="ventes_non_compresse" outcasdata="ventes_compresse" replace options=(compress='YES');
7RUN;
8 
9/* Ajout de nouvelles lignes à la table compressée existante */
10DATA mycas.ventes_compresse (append=yes);
11 LENGTH produit $20 quantite prix 8;
12 INPUT produit $ quantite prix;
13 DATALINES;
14Poire 7 2.10
15Kiwi 8 1.80
16;
17RUN;
18 
19/* Affiche le contenu de la table compressée mise à jour */
20PROC PRINT DATA=mycas.ventes_compresse;
21RUN;
3 Codeblock
DATA Step Data
Erklärung :
Dieses Beispiel erstellt eine CAS-Tabelle, die sowohl partitioniert als auch komprimiert ist. Die Option `partition=(categorie)` gibt die Partitionierungsvariable an, und `compress=yes` aktiviert die Komprimierung für die In-Memory-Tabelle. Neue Zeilen, die dieser Tabelle hinzugefügt werden, werden entsprechend automatisch partitioniert und komprimiert. Der `PROC CASUTIL CONTENTS` mit der Option `details` ermöglicht die Überprüfung dieser Attribute.
Kopiert!
1/* Établit une connexion CAS (à adapter à votre environnement) */
2LIBNAME mycas cas caslib=casuser;
3 
4/* Crée une table SAS en local pour l'exemple */
5DATA temp_produits;
6 LENGTH categorie $10 produit $20 quantite prix 8;
7 INPUT categorie $ produit $ quantite prix;
8 DATALINES;
9Fruits Pomme 10 1.50
10Banane 5 0.75
11Legumes Carotte 20 0.50
12Legumes Salade 3 2.00
13;
14RUN;
15 
16/* Charge et compresse la table, en la partitionnant par 'categorie' */
17DATA mycas.produits_part_comp (partition=(categorie) compress=yes);
18 SET temp_produits;
19RUN;
20 
21/* Affiche les propriétés de la table (y compris les informations de partition et de compression) */
22PROC CASUTIL incaslib="casuser" outcaslib="casuser";
23 contents casdata="produits_part_comp" details;
24RUN;
25QUIT;
4 Codeblock
PROC CAS Data
Erklärung :
Dieses Beispiel verwendet `PROC CAS`, um eine CSV-Datei in den Speicher zu laden und direkt zu komprimieren. Die Methode `table.loadTable` wird verwendet, und die Option `compress=TRUE` wird in `casOut` übergeben, um sicherzustellen, dass die Tabelle sofort beim Laden komprimiert wird. `table.tableInfo` ermöglicht die Überprüfung, ob die Tabelle tatsächlich komprimiert ist, indem Details wie die komprimierte und unkomprimierte Größe angezeigt werden. Beachten Sie, dass für eine bereits auf CAS vorhandene Tabelle (z.B. SASHDAT), das Verhalten von COMPRESS= variieren kann.
Kopiert!
1/* Établit une connexion CAS (à adapter à votre environnement) */
2options casport=5570 cashost="cloud.example.com";
3 
4/* Crée une table SASHELP simple à charger */
5DATA _null_;
6 SET sashelp.class;
7 file "/tmp/class.csv" dlm=',';
8 IF _n_ = 1 THEN put 'Name,Sex,Age,Height,Weight';
9 put name sex age height weight;
10RUN;
11 
12/* Charge le fichier CSV en mémoire CAS en spécifiant la compression */
13PROC CAS;
14 SESSION casauto;
15 TABLE.loadTable /
16 caslib="casuser",
17 path="/tmp/class.csv",
18 casOut={name="class_compresse_cas", compress=TRUE, replace=TRUE},
19 promote=TRUE;
20 RUN;
21 
22 /* Affiche les informations de la table pour vérifier la compression */
23 TABLE.tableInfo / caslib="casuser", name="class_compresse_cas", fullinfo=TRUE;
24 RUN;
25QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved.


Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.