?>
L'action `addCaslib` est fondamentale dans SAS Viya car elle permet de déclarer une nouvelle bibliothèque de données CAS (Caslib). Une Caslib est un pointeur vers une source de données, qu'il s'agisse d'un chemin sur un système de fichiers, d'une base de données distante, ou d'un emplacement dans le cloud. Cette action ne charge pas les données en mémoire mais établit la connexion et les métadonnées nécessaires pour que le serveur CAS puisse y accéder. C'est la première étape indispensable avant de pouvoir charger des tables en mémoire à partir de cette source de données.
| Paramètre | Description |
|---|---|
| activeOnAdd | Si défini sur TRUE, la nouvelle caslib devient la caslib active pour la session en cours. Cela signifie que les actions futures qui ne spécifient pas de caslib utiliseront celle-ci par défaut. |
| createDirectory | Si défini sur TRUE, le répertoire spécifié dans le paramètre `path` sera créé s'il n'existe pas. Utile pour les caslibs de type PATH. |
| dataSource | Spécifie le type de source de données et ses paramètres spécifiques. Le paramètre `srcType` est crucial et détermine les autres options requises (par exemple, pour une base de données, il faudra des informations sur le serveur, l'utilisateur, etc.). |
| description | Une chaîne de caractères fournissant une description textuelle de la caslib, utile pour la documentation et la gestion. |
| hidden | Si défini sur TRUE, la caslib ne sera pas visible dans les listes de caslibs par défaut, la rendant 'cachée'. |
| name | Le nom unique à assigner à la caslib. Ce nom sera utilisé pour référencer la bibliothèque dans les futures opérations CAS. |
| path | Le chemin physique ou l'identifiant de la source de données. Pour une caslib de type PATH, c'est un chemin sur le système de fichiers du serveur CAS. Pour une base de données, cela peut être le nom de la base. |
| permission | Définit les permissions d'accès au niveau du système de fichiers lorsque `createDirectory` est utilisé. Peut être une chaîne de caractères prédéfinie (comme 'PUBLICREAD') ou une valeur octale numérique. |
| session | Si défini sur TRUE, la caslib est de portée session, ce qui signifie qu'elle n'est visible et utilisable que dans la session CAS actuelle et sera détruite à la fin de la session. |
| subDirectories | Si défini sur TRUE, permet à la caslib d'accéder aux fichiers et tables dans les sous-répertoires du chemin spécifié. |
| tableRedistUpPolicy | Définit la politique de redistribution des données pour les tables de cette caslib lorsque le nombre de nœuds workers du serveur CAS augmente. |
| transient | Si défini sur TRUE, la caslib est transitoire, ce qui signifie qu'elle n'est pas persistée et disparaîtra à la fin de la session. |
Pour illustrer l'utilisation de `addCaslib` avec une source de données de type 'PATH', nous créons d'abord un fichier CSV dans un répertoire temporaire. La caslib pointera ensuite vers ce répertoire pour rendre le fichier accessible au serveur CAS.
1 /* Étape 1 : Créer un répertoire temporaire et un fichier CSV. Le chemin '/tmp/mydata' est un exemple. */ 2 filename mycsv temp; 3 DATA _null_; 4 file mycsv dsd dlm=',' lrecl=200; 5 put 'Marque,Modele,Annee,Prix'; 6 put 'Toyota,Camry,2021,25000'; 7 put 'Honda,Accord,2022,27000'; 8 put 'Ford,Mustang,2023,45000'; 9 RUN; 10 11 /* Note : Le code ci-dessus est exécuté dans une session SAS 9 ou SAS Viya (Compute Server). */ 12 /* L'étape suivante, addCaslib, est exécutée dans une session CAS. */
Ceci est l'utilisation la plus courante. On déclare une caslib qui pointe vers un répertoire sur le système de fichiers du serveur CAS. Tous les fichiers de données (comme des CSV, SAS7BDAT, etc.) dans ce répertoire deviennent alors accessibles.
| 1 | PROC CAS; TABLE.addCaslib / name='MyPathCaslib' path='/tmp/mydata' dataSource={srcType='PATH'} description='Ma caslib basée sur un chemin'; RUN; |
Cet exemple montre comment déclarer une caslib pour se connecter à une base de données Oracle. Il inclut des paramètres spécifiques à la source de données comme le serveur, le nom d'utilisateur, le mot de passe et le schéma. La caslib est définie comme non-session, ce qui la rend potentiellement disponible pour d'autres utilisateurs (selon les permissions).
| 1 | PROC CAS; TABLE.addCaslib / name='MyOracleCaslib' dataSource={srcType='ORACLE', path='ORCL', user='myuser', password='mypassword', schema='MYSCHEMA'} description='Caslib pour la base Oracle' SESSION=FALSE; RUN; |
Cet exemple crée une caslib de type PATH qui est limitée à la session en cours (`session=TRUE`). De plus, elle permet d'explorer les sous-répertoires (`subDirectories=TRUE`), ce qui est utile pour organiser les fichiers de données dans une arborescence.
| 1 | PROC CAS; TABLE.addCaslib / name='TempData' path='/cas/data/project_alpha' dataSource={srcType='PATH'} description='Données temporaires pour le projet Alpha' SESSION=TRUE subDirectories=TRUE; RUN; |
L'équipe marketing a besoin d'un espace de travail temporaire et isolé pour analyser un fichier de données clients (CSV) en préparation d'une nouvelle campagne. La caslib ne doi...
Une institution financière stocke ses données de risque dans une arborescence de répertoires par année et par trimestre. Un data scientist a besoin d'un accès unifié et persista...
Un administrateur système configure une nouvelle caslib mais commet une erreur en spécifiant un chemin qui n'existe pas. Le test doit valider le comportement de SAS Viya dans ce...