Publié le :
Accès aux Données CREATION_INTERNE

Exemples : Accéder aux Données en Utilisant un Libref

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce guide essentiel explore divers scénarios d'accès aux données dans l'environnement SAS© Viya. Il détaille l'utilisation de la déclaration LIBNAME pour associer un nom logique (libref) à un emplacement physique de bibliothèque, et montre comment des fonctions SAS© peuvent être utilisées pour cette même tâche, permettant une gestion programmatique. Les cas avancés incluent la concaténation de plusieurs bibliothèques SAS©, l'accès sécurisé à des bibliothèques sur des serveurs distants via SAS©/CONNECT, et l'intégration avec des serveurs WebDAV pour le partage de données. Une attention particulière est portée à l'intégration des systèmes de gestion de bases de données (DBMS) avec SAS©/ACCESS, y compris la création de vues SAS© à partir de tables DBMS, soulignant la flexibilité de SAS© pour travailler avec diverses sources de données. Enfin, il explique comment gérer dynamiquement les dossiers des bibliothèques et effacer les librefs pour optimiser les ressources.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP, à l'exception des exemples d'accès à des sources externes (SAS/CONNECT, WebDAV, DBMS) pour lesquels des données simulées ou des placeholders sont utilisés.

1 Bloc de code
DATA STEP / PROC PRINT Data
Explication :
Cet exemple assigne le libref 'sales' à un chemin de bibliothèque spécifié. Il crée ensuite un jeu de données 'quarter1' dans cette bibliothèque à l'aide d'un DATA step, puis utilise PROC PRINT pour afficher le contenu du jeu de données. Le chemin de la bibliothèque doit exister et être accessible par le SAS Compute Server.
Copié !
1LIBNAME sales 'library-path';
2DATA sales.quarter1;
3 LENGTH mileage 4;
4 INPUT account mileage;
5 DATALINES;
61 932
72 563
8;
9PROC PRINT DATA=sales.quarter1;
10RUN;
2 Bloc de code
Macro / LIBNAME Function / LIBREF Function
Explication :
Ce macro-programme 'test' assigne dynamiquement un libref ('new') à un emplacement de répertoire ('library-location') à l'aide de la fonction LIBNAME. Il vérifie ensuite le succès de l'assignation avec la fonction LIBREF et affiche un message approprié. Les chemins doivent être valides et accessibles. Les fonctions sont préférables pour des assignations programmatiques.
Copié !
1%macro test;
2 %let mylibref=new;
3 %let mydirectory=library-location;
4 %IF %sysfunc(LIBNAME(&mylibref,&mydirectory)) %THEN
5 %put %sysfunc(sysmsg());
6 %ELSE %put success;
7 %IF %sysfunc(libref(&mylibref)) %THEN
8 %put %sysfunc(sysmsg());
9 %ELSE %put library &mylibref is assigned to &mydirectory;
10%mend test;
11 
12%test
3 Bloc de code
LIBNAME Statement
Explication :
Cette déclaration LIBNAME concatène deux bibliothèques SAS existantes, 'lib1' et 'lib2', sous le nouveau libref 'lib3'. Cela permet d'accéder aux données des deux bibliothèques en utilisant un seul libref. Lors de la recherche d'un jeu de données, les bibliothèques sont explorées dans l'ordre de leur liste. Si un jeu de données est créé, il est placé dans la première bibliothèque de la concaténation.
Copié !
1LIBNAME lib3 (lib1 lib2);
4 Bloc de code
LIBNAME Statement / PROC DATASETS
Explication :
Cet exemple illustre comment accéder à une bibliothèque SAS située sur un serveur distant via SAS/CONNECT. Il établit une connexion TCP/IP, se connecte au serveur distant ('myserver') avec des identifiants, puis assigne le libref 'reports' à un répertoire distant. PROC DATASETS est ensuite utilisé pour inspecter la bibliothèque distante. La session SAS/CONNECT est ensuite fermée.
Copié !
1options comamid=tcp;
2%let myserver=host.name.com;
3signon myserver.__1234 user=userid password='mypw';
4LIBNAME reports '/myremotedata' server=myserver.__1234;
5PROC DATASETS library=reports;
6RUN;
7QUIT;
8signoff myserver.__1234;
5 Bloc de code
LIBNAME Statement
Explication :
Cette déclaration LIBNAME assigne le libref 'davdata' à un répertoire sur un serveur WebDAV. L'option 'WEBDAV' est cruciale pour spécifier la méthode d'accès. Des identifiants (utilisateur et mot de passe) sont fournis pour l'authentification. SAS récupérera temporairement les fichiers sur le disque local pour traitement, puis les renverra au serveur après les modifications.
Copié !
1LIBNAME davdata v9 "https://www.webserver.com/datadir"
2webdav user="userid" pw="12345";
3 
6 Bloc de code
DATA STEP / PROC DATASETS Data
Explication :
Cet exemple assigne le libref 'mytddata' à une base de données Teradata, permettant l'accès aux tables comme à des jeux de données SAS. Un DATA step est utilisé pour créer une table 'grades' directement dans la base de données Teradata. PROC DATASETS est ensuite utilisé pour afficher les informations sur cette table. Il faut noter que les interfaces SAS/ACCESS ne supportent pas toujours l'option REPLACE= pour les tables DBMS.
Copié !
1LIBNAME mytddata teradata server=mytera user=myid password=mypw;
2DATA mytddata.grades;
3 INPUT student $ test1 test2 final;
4 DATALINES;
5Fred 66 80 70
6Wilma 97 91 98
7;
8PROC DATASETS library=mytddata;
9RUN;
10QUIT;
7 Bloc de code
DATA STEP / PROC PRINT / PROC DATASETS
Explication :
Cet exemple crée une vue SAS nommée 'highgrades' à partir d'une table Teradata existante ('mytddata.grades'). La vue sélectionne uniquement les enregistrements où la variable 'final' est supérieure à 80. PROC PRINT exécute cette vue, et PROC DATASETS montre que 'highgrades' est bien une vue SAS. Les librefs pour 'target' et 'mytddata' doivent être assignés avant de pouvoir utiliser cette vue.
Copié !
1LIBNAME target 'library-path';
2LIBNAME mytddata teradata server=mytera user=myid password=mypw;
3DATA target.highgrades / view=target.highgrades;
4 SET mytddata.grades;
5 where final gt 80;
6RUN;
7PROC PRINT DATA=target.highgrades;
8RUN;
9PROC DATASETS library=target;
10RUN;
11QUIT;
8 Bloc de code
OPTIONS statement / LIBNAME Statement
Explication :
Cet exemple montre comment créer automatiquement un sous-dossier pour une bibliothèque SAS si celui-ci n'existe pas. L'option système 'DLCREATEDIR' est activée, permettant à SAS de créer le dossier 'project' s'il est manquant dans le chemin spécifié '/home/userid/mydata/project' lors de l'assignation du libref 'mynewlib'.
Copié !
1options dlcreatedir;
2LIBNAME mynewlib '/home/userid/mydata/project';
3 
9 Bloc de code
LIBNAME Statement
Explication :
Cette déclaration LIBNAME désassigne le libref 'mylib' de son emplacement physique. C'est utile pour libérer des ressources ou modifier l'assignation d'un libref. Pour désassigner tous les librefs (sauf les bibliothèques système), on peut utiliser 'libname _all_ clear;'.
Copié !
1LIBNAME mylib clear;
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


Documentation liée : Accès aux Données

Sujet / Mot-cléLien vers la ressource
DOC FedSQL fr/sampleCode/FEDSQLD493
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI88E2
DOC Bibliothèques SAS par Défaut fr/sampleCode/BIBLIOB755
DOC Fonctionnement des Moteurs avec les Fichiers fr/sampleCode/FONCTI81D4
DOC Caractéristiques des moteurs SAS fr/sampleCode/CARACTABC0
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI6352
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Ne laissez jamais vos connexions ouvertes inutilement. Utilisez systématiquement LIBNAME libref CLEAR; à la fin de vos macros ou de vos programmes de flux. Cela libère les verrous sur les fichiers et nettoie les sessions actives sur les serveurs distants (WebDAV, SQL), optimisant ainsi les ressources de votre plateforme Viya. »