/****************************************************************************** * Programme : SAS Viya Memory Optimization: Saving Space with CAS Table Compression * Reference : DATACO3FC8 * Source : https://www.wearecas.eu/de/sampleCode/DATACO3FC8 ******************************************************************************/ /* --- BLOC 1 --- */ /* Établit une connexion CAS (à adapter à votre environnement) */ libname mycas cas caslib=casuser; /* Crée une table non compressée pour l'exemple */ data mycas.ventes_non_compresse; length produit $20 quantite prix 8; input produit $ quantite prix; datalines; Pomme 10 1.50 Banane 5 0.75 Orange 12 1.20 ; run; /* Crée une copie compressée de la table 'ventes_non_compresse' */ data mycas.ventes_compresse (compress=yes); set mycas.ventes_non_compresse; run; /* Affiche les propriétés de la table compressée (y compris la compression) */ proc casutil incaslib="casuser" outcaslib="casuser"; contents casdata="ventes_compresse"; run; quit; /* --- BLOC 2 --- */ /* Établit une connexion CAS (à adapter à votre environnement) */ libname mycas cas caslib=casuser; /* Assurez-vous que la table compressée de l'exemple 1 existe */ proc casutil incaslib="casuser" outcaslib="casuser"; load casdata="ventes_non_compresse" outcasdata="ventes_compresse" replace options=(compress='YES'); run; /* Ajout de nouvelles lignes à la table compressée existante */ data mycas.ventes_compresse (append=yes); length produit $20 quantite prix 8; input produit $ quantite prix; datalines; Poire 7 2.10 Kiwi 8 1.80 ; run; /* Affiche le contenu de la table compressée mise à jour */ proc print data=mycas.ventes_compresse; run; /* --- BLOC 3 --- */ /* Établit une connexion CAS (à adapter à votre environnement) */ libname mycas cas caslib=casuser; /* Crée une table SAS en local pour l'exemple */ data temp_produits; length categorie $10 produit $20 quantite prix 8; input categorie $ produit $ quantite prix; datalines; Fruits Pomme 10 1.50 Fruits Banane 5 0.75 Legumes Carotte 20 0.50 Legumes Salade 3 2.00 ; run; /* Charge et compresse la table, en la partitionnant par 'categorie' */ data mycas.produits_part_comp (partition=(categorie) compress=yes); set temp_produits; run; /* Affiche les propriétés de la table (y compris les informations de partition et de compression) */ proc casutil incaslib="casuser" outcaslib="casuser"; contents casdata="produits_part_comp" details; run; quit; /* --- BLOC 4 --- */ /* Établit une connexion CAS (à adapter à votre environnement) */ options casport=5570 cashost="cloud.example.com"; /* Crée une table SASHELP simple à charger */ data _null_; set sashelp.class; file "/tmp/class.csv" dlm=','; if _n_ = 1 then put 'Name,Sex,Age,Height,Weight'; put name sex age height weight; run; /* Charge le fichier CSV en mémoire CAS en spécifiant la compression */ proc cas; session casauto; table.loadTable / caslib="casuser", path="/tmp/class.csv", casOut={name="class_compresse_cas", compress=TRUE, replace=TRUE}, promote=TRUE; run; /* Affiche les informations de la table pour vérifier la compression */ table.tableInfo / caslib="casuser", name="class_compresse_cas", fullinfo=TRUE; run; quit;