ETL CAS

Compresión de datos en SAS Viya

Este código también está disponible en: Deutsch English
Nivel de dificultad
Principiante
Publicado el :
SAS© Cloud Analytic Services admite la compresión de tablas en memoria. Cuando una tabla se carga o se crea mediante un DATA step o PROC CAS con la opción COMPRESS=YES, el servidor CAS comprime las filas. La compresión se aplica a todas las variables (carácter y numéricas) y a todas las filas de la tabla. Aunque la compresión reduce el uso de memoria, puede provocar una degradación del rendimiento en operaciones que requieren la descompresión de bloques de datos. Los ratios de compresión varían según el tipo de datos, las variables de carácter con muchos espacios en blanco generalmente se comprimen mejor. Se aplican consideraciones específicas al usar cláusulas WHERE o tablas SASHDAT.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o la librería SASHELP.

1 Bloque de código
DATA Step Data
Explicación :
Este ejemplo ilustra la creación de una tabla CAS comprimida a partir de una tabla existente utilizando un DATA Step. La opción `compress=yes` se especifica en las opciones de la tabla de salida, indicando a CAS que comprima los datos en memoria. Se utiliza un `PROC CASUTIL CONTENTS` para verificar las propiedades de la tabla, incluido el estado de compresión.
¡Copiado!
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 Bloque de código
DATA Step Data
Explicación :
Este ejemplo muestra cómo agregar nuevas filas a una tabla CAS ya comprimida. La opción `append=yes` se utiliza en el DATA Step. Las nuevas filas, aunque no estén explícitamente comprimidas en el DATA Step de adición, serán automáticamente comprimidas por el servidor CAS porque la tabla `mycas.ventes_compresse` ya está definida como comprimida. Esto se demuestra por la ausencia de la opción `compress=yes` en el DATA Step de adición.
¡Copiado!
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 Bloque de código
DATA Step Data
Explicación :
Este ejemplo crea una tabla CAS que es a la vez particionada y comprimida. La opción `partition=(categorie)` especifica la variable de particionamiento, y `compress=yes` activa la compresión para la tabla en memoria. Las nuevas filas añadidas a esta tabla serán automáticamente particionadas y comprimidas en consecuencia. El `PROC CASUTIL CONTENTS` con la opción `details` permite verificar estos atributos.
¡Copiado!
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
10Fruits Banane 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 Bloque de código
PROC CAS Data
Explicación :
Este ejemplo utiliza `PROC CAS` para cargar un archivo CSV en memoria y comprimirlo directamente. Se emplea el método `table.loadTable`, y la opción `compress=TRUE` se pasa en los `casOut` para asegurar que la tabla se comprime tan pronto como se carga. `table.tableInfo` permite verificar que la tabla está correctamente comprimida mostrando detalles como el tamaño comprimido y sin comprimir. Tenga en cuenta que para una tabla ya presente en CAS (ej: SASHDAT), el comportamiento de COMPRESS= puede variar.
¡Copiado!
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;
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 © SAS Institute Inc. All Rights Reserved.


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.