table

addCaslib Action CAS : Créer une bibliothèque SAS Viya

addCaslib

L'essentiel
L'essentiel
L'action addCaslib constitue la pierre angulaire de la gestion des données dans SAS Viya, agissant comme le point de connexion initial entre vos infrastructures de stockage (fichiers locaux, bases de données, Cloud) et le serveur CAS. Plutôt que de déplacer physiquement les données, elle établit les passerelles de métadonnées essentielles pour permettre un accès ultérieur. Cette page regroupe une série de questions-réponses techniques destinées à guider les administrateurs et ingénieurs de données dans la configuration optimale de ces bibliothèques, étape préalable indispensable à tout chargement en mémoire.
Doc Officielle
addCaslib Action

Adds a new caslib to enable access to a data source.

Consulter

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
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.
Préparation des Données Voir la fiche de ce code dataprep
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.

Copié !
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 Validé
Copié !
1 
2PROC CAS;
3TABLE.addCaslib / name='MyPathCaslib' path='/tmp/mydata' dataSource={srcType='PATH'} description='Ma caslib basée sur un chemin';
4 
5RUN;
6 
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 Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3TABLE.addCaslib / name='MyOracleCaslib' dataSource={srcType='ORACLE', path='ORCL', user='myuser', password='mypassword', schema='MYSCHEMA'} description='Caslib pour la base Oracle'
4SESSION=FALSE;
5 
6RUN;
7 
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 Code en attente de validation par la communauté
Copié !
1 
2PROC CAS;
3TABLE.addCaslib / name='TempData' path='/cas/
4data/project_alpha' dataSource={srcType='PATH'} description='Données temporaires pour le projet Alpha'
5SESSION=TRUE subDirectories=TRUE;
6 
7RUN;
8 
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...