?> addCaslib - WeAreCAS
table

addCaslib

Description

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.

table.addCaslib / activeOnAdd=TRUE | FALSE, createDirectory=TRUE | FALSE, dataSource={srcType='source' <, srcType-specific-parameters>}, description='string', hidden=TRUE | FALSE, name='string', path='string', permission='permission-level' | integer, session=TRUE | FALSE, subDirectories=TRUE | FALSE, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", transient=TRUE | FALSE;
Paramètres
ParamètreDescription
activeOnAddSi 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.
createDirectorySi 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.
dataSourceSpé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.).
descriptionUne chaîne de caractères fournissant une description textuelle de la caslib, utile pour la documentation et la gestion.
hiddenSi défini sur TRUE, la caslib ne sera pas visible dans les listes de caslibs par défaut, la rendant 'cachée'.
nameLe nom unique à assigner à la caslib. Ce nom sera utilisé pour référencer la bibliothèque dans les futures opérations CAS.
pathLe 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.
permissionDé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.
sessionSi 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.
subDirectoriesSi défini sur TRUE, permet à la caslib d'accéder aux fichiers et tables dans les sous-répertoires du chemin spécifié.
tableRedistUpPolicyDé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.
transientSi 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.
Préparation des Données
Création de données de test

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. */
2filename mycsv temp;
3DATA _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';
9RUN;
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. */

Exemples

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.

Code SAS® / CAS
Copié !
1PROC CAS; TABLE.addCaslib / name='MyPathCaslib' path='/tmp/mydata' dataSource={srcType='PATH'} description='Ma caslib basée sur un chemin'; RUN;
Résultat :
Une nouvelle caslib nommée 'MyPathCaslib' est créée. Le serveur CAS peut maintenant lire les fichiers depuis le répertoire '/tmp/mydata'. L'action renvoie une note de succès dans le journal SAS.

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).

Code SAS® / CAS
Copié !
1PROC 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;
Résultat :
Une caslib nommée 'MyOracleCaslib' est créée et connectée à la base de données Oracle 'ORCL'. Les tables du schéma 'MYSCHEMA' sont maintenant listables et chargeables en mémoire CAS. Comme `session=FALSE`, cette caslib est persistante au-delà de la session actuelle, si l'utilisateur a les droits pour le faire.

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.

Code SAS® / CAS
Copié !
1PROC 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;
Résultat :
Une caslib de session nommée 'TempData' est créée. Elle permet d'accéder aux fichiers dans '/cas/data/project_alpha' et tous ses sous-dossiers. La caslib sera automatiquement supprimée à la fin de la session CAS.

FAQ

À quoi sert l'action `addCaslib` ?
Qu'est-ce qu'une caslib ?
Comment spécifier le type de source de données pour une caslib ?
Comment rendre une caslib temporaire et limitée à la session actuelle ?
Que se passe-t-il si je fournis un chemin invalide lors de la création d'une caslib ?
Comment inclure les sous-répertoires dans ma caslib ?

Scénarios associés

Cas d'usage
Scénario Standard : Analyse de Campagne Marketing avec une Caslib de Session

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...

Cas d'usage
Scénario Volumétrie : Accès à un Data Lake avec Structure de Sous-Répertoires

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...

Cas d'usage
Scénario Cas Limite : Gestion d'un Chemin Invalide et Création de Répertoire à la Volée

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...