Publié le :
ETL CREATION_INTERNE

Sauvegarder un fichier SAS7BDAT dans une Caslib

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'action 'table.save' de SAS© Viya permet de sauvegarder des tables en mémoire CAS vers divers formats de fichiers, y compris SAS©7BDAT. Le paramètre 'exportOptions' est crucial pour spécifier le type de fichier de sortie ('basesas' pour SAS©7BDAT) et des options spécifiques au type, comme le chiffrement. L'exemple illustre la sauvegarde d'une table avec un chiffrement AES2 et un mot de passe. Chaque exemple est autonome et inclut la création des données nécessaires en utilisant une étape DATA avec DATALINES.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) pour assurer leur autonomie. La table 'cholesterol' est créée et chargée en mémoire CAS pour les démonstrations de sauvegarde.

1 Bloc de code
DATA STEP / PROC CAS Data
Explication :
Cet exemple crée une table SAS simple en utilisant une étape DATA avec DATALINES, la charge en mémoire CAS, puis la sauvegarde en tant que fichier SAS7BDAT dans la caslib 'casuser' sans aucune option de chiffrement. La commande 'fileinfo' permet de vérifier que le fichier a bien été créé.
Copié !
1DATA work.cholesterol;
2 INPUT Name $ Age Sex $ Cholesterol_Level;
3 DATALINES;
4John_Doe 45 M 200
5Jane_Smith 30 F 180
6Peter_Jones 55 M 240
7Alice_Brown 25 F 160
8;
9RUN;
10 
11cas casauto sessopts=(caslib="casuser");
12 
13PROC CAS;
14 TABLE.upload /
15 caslib="casuser",
16 path="cholesterol",
17 casout={name="cholesterol", replace=true};
18 TABLE.save /
19 TABLE="cholesterol",
20 name="cholesterol_basic.sas7bdat",
21 exportOptions={fileType="basesas"},
22 replace=true;
23QUIT;
24 
25PROC CAS;
26 TABLE.fileinfo / caslib="casuser" pattern="cholesterol_basic.sas7bdat";
27QUIT;
2 Bloc de code
DATA STEP / PROC CAS Data
Explication :
Ce cas reproduit l'exemple de la documentation. Il crée la table 'cholesterol', la charge en mémoire CAS, puis la sauvegarde en tant que fichier SAS7BDAT chiffré avec l'algorithme AES2 et un mot de passe spécifié. La commande 'fileinfo' permet de vérifier que le fichier a bien été créé.
Copié !
1DATA work.cholesterol;
2 INPUT Name $ Age Sex $ Cholesterol_Level;
3 DATALINES;
4John_Doe 45 M 200
5Jane_Smith 30 F 180
6Peter_Jones 55 M 240
7Alice_Brown 25 F 160
8;
9RUN;
10 
11cas casauto sessopts=(caslib="casuser");
12 
13PROC CAS;
14 TABLE.upload /
15 caslib="casuser",
16 path="cholesterol",
17 casout={name="cholesterol", replace=true};
18 TABLE.save /
19 TABLE="cholesterol",
20 name="cholesterol_encr.sas7bdat",
21 exportOptions={
22 fileType="basesas",
23 encrypt="AES2",
24 encryptionPassword="pasquotank"
25 },
26 replace=true;
27QUIT;
28 
29PROC CAS;
30 TABLE.fileinfo / caslib="casuser" pattern="cholesterol_encr.sas7bdat";
31QUIT;
3 Bloc de code
DATA STEP / PROC CAS Data
Explication :
Cet exemple illustre une utilisation plus avancée en sauvegardant un sous-ensemble de données (ici, les enregistrements où Cholesterol_Level est supérieur à 200) dans un format différent, à savoir CSV. Le paramètre 'where' est utilisé pour le filtrage et 'exportOptions={fileType="csv"}' pour le format de sortie. La commande 'fileinfo' permet de vérifier que le fichier a bien été créé.
Copié !
1DATA work.cholesterol;
2 INPUT Name $ Age Sex $ Cholesterol_Level;
3 DATALINES;
4John_Doe 45 M 200
5Jane_Smith 30 F 180
6Peter_Jones 55 M 240
7Alice_Brown 25 F 160
8;
9RUN;
10 
11cas casauto sessopts=(caslib="casuser");
12 
13PROC CAS;
14 TABLE.upload /
15 caslib="casuser",
16 path="cholesterol",
17 casout={name="cholesterol", replace=true};
18 
19 TABLE.save /
20 TABLE="cholesterol",
21 where="Cholesterol_Level > 200",
22 name="cholesterol_filtered.csv",
23 exportOptions={fileType="csv"},
24 replace=true;
25QUIT;
26 
27PROC CAS;
28 TABLE.fileinfo / caslib="casuser" pattern="cholesterol_filtered.csv";
29QUIT;
4 Bloc de code
DATA STEP / PROC CAS Data
Explication :
Cet exemple montre comment créer une caslib temporaire ('my_temp_caslib') et y sauvegarder la table 'cholesterol'. Cela est utile pour gérer les données entre différents espaces de stockage CAS ou pour préparer des données pour une utilisation externe à la caslib d'origine. La caslib temporaire est supprimée à la fin de l'exécution pour le nettoyage. La commande 'fileinfo' permet de vérifier que le fichier a bien été créé.
Copié !
1DATA work.cholesterol;
2 INPUT Name $ Age Sex $ Cholesterol_Level;
3 DATALINES;
4John_Doe 45 M 200
5Jane_Smith 30 F 180
6Peter_Jones 55 M 240
7Alice_Brown 25 F 160
8;
9RUN;
10 
11cas casauto sessopts=(caslib="casuser");
12 
13PROC CAS;
14 TABLE.upload /
15 caslib="casuser",
16 path="cholesterol",
17 casout={name="cholesterol", replace=true};
18 
19 caslib.add /
20 caslib="my_temp_caslib",
21 path="/tmp/my_temp_data",
22 subdirs=true,
23 global=false,
24 dataSource={srcType="path"};
25 
26 TABLE.save /
27 TABLE="cholesterol",
28 caslib="my_temp_caslib", /* Spécifie la caslib de destination */
29 name="cholesterol_remote.sas7bdat",
30 exportOptions={fileType="basesas"},
31 replace=true;
32QUIT;
33 
34PROC CAS;
35 TABLE.fileinfo / caslib="my_temp_caslib" pattern="cholesterol_remote.sas7bdat";
36 caslib.drop / caslib="my_temp_caslib" quiet=true;
37QUIT;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« Dans l'écosystème SAS Viya, la distinction entre les données en mémoire (In-Memory) et les fichiers physiques est fondamentale. L'action table.save du langage CASL est le mécanisme privilégié pour rendre vos résultats persistants. Son intérêt majeur réside dans sa polyvalence : elle permet non seulement d'exporter des tables CAS vers le format historique .sas7bdat, mais aussi d'appliquer des couches de sécurité critiques dès l'écriture. En utilisant le paramètre exportOptions avec l'option fileType="basesas", vous pouvez activer un chiffrement robuste de type AES2. C'est une pratique d'excellence pour garantir la confidentialité des données sensibles (comme les niveaux de cholestérol dans cet exemple) une fois qu'elles quittent l'environnement sécurisé de la mémoire vive pour être stockées sur disque. »