Les exemples fournis utilisent des chemins de système de fichiers génériques (`/tmp/mydata`, `/project/data`, `/cas/data/dynamic_source`, `/tmp/my_user_data`) qui doivent exister ou être créés sur le système de fichiers du serveur CAS. L'exemple avancé utilise également une table SASHELP (`CARS`) pour la démonstration de chargement de données.
1 Bloc de code
PROC CAS Data
Explication : Cet exemple montre la création d'une caslib simple nommée 'mybasiccaslib' qui pointe vers le répertoire `/tmp/mydata` sur le système de fichiers du serveur CAS. Il inclut ensuite une vérification de la création de cette caslib.
Copié !
proc cas;
session casauto;
table.addCaslib /
name="mybasiccaslib",
description="Caslib de base pour mes données",
dataSource={srctype="path"},
path="/tmp/mydata";
run;
/* Vérifier que la caslib a été ajoutée */
proc cas;
session casauto;
table.caslibinfo / caslib="mybasiccaslib";
run;
1
PROC CAS;
2
SESSION casauto;
3
TABLE.addCaslib /
4
name="mybasiccaslib",
5
description="Caslib de base pour mes données",
6
dataSource={srctype="path"},
7
path="/tmp/mydata";
8
RUN;
9
10
/* Vérifier que la caslib a été ajoutée */
11
PROC CAS;
12
SESSION casauto;
13
TABLE.caslibinfo / caslib="mybasiccaslib";
14
RUN;
2 Bloc de code
PROC CAS Data
Explication : Cet exemple crée une caslib nommée 'global_project_data' qui inclut des options courantes. L'option `subdirs=TRUE` permet à la caslib de reconnaître et d'accéder aux sous-répertoires du chemin spécifié. L'option `globals=TRUE` rend cette caslib accessible à toutes les sessions CAS, et non seulement à la session de l'utilisateur qui l'a créée.
Copié !
proc cas;
session casauto;
table.addCaslib /
name="global_project_data",
description="Données de projet avec sous-répertoires et accès global",
dataSource={srctype="path"},
path="/project/data",
subdirs=TRUE,
globals=TRUE;
run;
/* Vérifier la configuration de la caslib */
proc cas;
session casauto;
table.caslibinfo / caslib="global_project_data";
run;
1
PROC CAS;
2
SESSION casauto;
3
TABLE.addCaslib /
4
name="global_project_data",
5
description="Données de projet avec sous-répertoires et accès global",
6
dataSource={srctype="path"},
7
path="/project/data",
8
subdirs=TRUE,
9
globals=TRUE;
10
RUN;
11
12
/* Vérifier la configuration de la caslib */
13
PROC CAS;
14
SESSION casauto;
15
TABLE.caslibinfo / caslib="global_project_data";
16
RUN;
3 Bloc de code
PROC CAS / Commandes Shell Data
Explication : Cet exemple avancé illustre la création et la gestion dynamique d'une caslib en utilisant des macro-variables SAS. Il commence par créer un répertoire sur le système de fichiers du serveur CAS via une commande shell. Ensuite, il ajoute une caslib (`DynamicCaslib`) qui pointe vers ce répertoire, en la définissant comme non active (`active=FALSE`) initialement. La caslib est ensuite activée, et son état est vérifié. Enfin, l'exemple inclut des étapes de nettoyage pour supprimer la caslib et le répertoire créé, démontrant un cycle de vie complet.
Copié !
%let myCaslibName = DynamicCaslib;
%let myCaslibPath = /cas/data/dynamic_source;
/* Assurez-vous que le chemin existe pour l'exemple */
/* Ceci exécute une commande shell pour créer le répertoire sur le serveur CAS */
filename _TEMP_CMD_ pipe "mkdir -p &myCaslibPath";
data _null_; infile _TEMP_CMD_ ; input; run;
proc cas;
session casauto;
table.addCaslib /
name="&myCaslibName",
description="Caslib créée dynamiquement via macro-variables",
dataSource={srctype="path"},
path="&myCaslibPath",
active=FALSE; /* La caslib n'est pas activée immédiatement */
run;
/* Activer la caslib et vérifier */
proc cas;
session casauto;
table.caslibinfo / caslib="&myCaslibName";
table.setCaslib / caslib="&myCaslibName", active=TRUE;
table.caslibinfo / caslib="&myCaslibName";
run;
/* Nettoyage : Supprimer la caslib et le dossier créé */
proc cas;
session casauto;
table.dropCaslib / caslib="&myCaslibName";
run;
filename _TEMP_CMD_ pipe "rmdir &myCaslibPath";
data _null_; infile _TEMP_CMD_ ; input; run;
1
%let myCaslibName = DynamicCaslib;
2
%let myCaslibPath = /cas/DATA/dynamic_source;
3
4
/* Assurez-vous que le chemin existe pour l'exemple */
5
/* Ceci exécute une commande shell pour créer le répertoire sur le serveur CAS */
/* Nettoyage : Supprimer la caslib et le dossier créé */
28
PROC CAS;
29
SESSION casauto;
30
TABLE.dropCaslib / caslib="&myCaslibName";
31
RUN;
32
filename _TEMP_CMD_ pipe "rmdir &myCaslibPath";
33
DATA _null_; INFILE _TEMP_CMD_ ; INPUT; RUN;
4 Bloc de code
PROC CAS / PROC CASUTIL Data
Explication : Cet exemple démontre la création d'une caslib personnelle (`personal=TRUE`), qui n'est visible que par la session CAS de l'utilisateur qui la crée. Le chemin `/tmp/my_user_data` est utilisé. Ensuite, il utilise l'action `loadcasdata` pour charger la table `CARS` de la bibliothèque SASHELP dans cette caslib personnelle, la rendant ainsi disponible en mémoire dans CAS sous le nom `cars_in_cas`. L'exemple liste ensuite les tables dans cette caslib et, enfin, supprime la caslib personnelle. Il est important de s'assurer que le répertoire `/tmp/my_user_data` existe et est accessible en écriture pour l'utilisateur CAS.
Copié !
/* Création d'une caslib personnelle temporaire */
/* Note: Le chemin doit être accessible et en écriture pour l'utilisateur CAS */
proc cas;
session casauto;
table.addCaslib /
name="my_personal_caslib",
description="Caslib personnelle temporaire pour chargement de données",
dataSource={srctype="path"},
path="/tmp/my_user_data",
personal=TRUE,
subdirs=TRUE; /* Permettre les sous-répertoires */
run;
/* Vérifier l'existence et l'activation de la caslib personnelle */
proc cas;
session casauto;
table.caslibinfo / caslib="my_personal_caslib";
run;
/* Charger des données SASHELP dans cette caslib personnelle */
/* Assurez-vous que le répertoire '/tmp/my_user_data' existe et est accessible en écriture */
proc cas;
session casauto;
loadcasdata /
caslib="my_personal_caslib",
path="CARS", /* Chargement de la table CARS de SASHELP */
casout="cars_in_cas",
promote=TRUE; /* Promote la table en mémoire pour être accessible */
run;
/* Lister les tables dans la caslib personnelle */
proc cas;
session casauto;
table.tableinfo / caslib="my_personal_caslib";
run;
/* Supprimer la caslib personnelle */
proc cas;
session casauto;
table.dropCaslib / caslib="my_personal_caslib";
run;
/* Nettoyage : Si des fichiers ont été écrits, ils doivent être supprimés manuellement du chemin /tmp/my_user_data */
1
/* Création d'une caslib personnelle temporaire */
2
/* Note: Le chemin doit être accessible et en écriture pour l'utilisateur CAS */
3
PROC CAS;
4
SESSION casauto;
5
TABLE.addCaslib /
6
name="my_personal_caslib",
7
description="Caslib personnelle temporaire pour chargement de données",
8
dataSource={srctype="path"},
9
path="/tmp/my_user_data",
10
personal=TRUE,
11
subdirs=TRUE; /* Permettre les sous-répertoires */
12
RUN;
13
14
/* Vérifier l'existence et l'activation de la caslib personnelle */
15
PROC CAS;
16
SESSION casauto;
17
TABLE.caslibinfo / caslib="my_personal_caslib";
18
RUN;
19
20
/* Charger des données SASHELP dans cette caslib personnelle */
21
/* Assurez-vous que le répertoire '/tmp/my_user_data' existe et est accessible en écriture */
22
PROC CAS;
23
SESSION casauto;
24
loadcasdata /
25
caslib="my_personal_caslib",
26
path="CARS", /* Chargement de la table CARS de SASHELP */
27
casout="cars_in_cas",
28
promote=TRUE; /* Promote la table en mémoire pour être accessible */
29
RUN;
30
31
/* Lister les tables dans la caslib personnelle */
32
PROC CAS;
33
SESSION casauto;
34
TABLE.tableinfo / caslib="my_personal_caslib";
35
RUN;
36
37
/* Supprimer la caslib personnelle */
38
PROC CAS;
39
SESSION casauto;
40
TABLE.dropCaslib / caslib="my_personal_caslib";
41
RUN;
42
43
/* Nettoyage : Si des fichiers ont été écrits, ils doivent être supprimés manuellement du chemin /tmp/my_user_data */
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.
« Si l'instruction LIBNAME est la passerelle du monde SAS traditionnel, l'action table.addCaslib est le pilier central de SAS Viya. Une Caslib n'est pas qu'un simple dossier ; c'est un espace de noms logique qui fait le pont entre vos fichiers physiques et la puissance du calcul en mémoire.
Ne confondez pas l'ajout d'une Caslib avec le chargement des données. addCaslib définit la source, mais les données ne montent en mémoire que lorsque vous utilisez une action comme loadTable. Pour optimiser vos ressources, ne créez des Caslibs globales que pour les données de référence réellement partagées par plusieurs équipe »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.