Publié le :

Utilisation des Moteurs SAS pour Traiter des Données Externes

Ce code est également disponible en : Deutsch English Español
En attente de validation
Analyse fonctionnelle détaillée des différentes approches pour l'importation et l'exportation de données externes. Elle couvre l'utilisation de PROC IMPORT pour les fichiers CSV et Excel, la création de tables dans un SGBD via un DATA step, l'intégration de déclarations LIBNAME dans des vues PROC SQL, l'exploitation de la fonction SQL Pass-Through, ainsi que l'importation de données XML et JSON à l'aide des moteurs XMLV2 et JSON, respectivement. Chaque exemple est conçu pour être autonome, en fournissant les moyens d'acquérir ou de créer les données nécessaires.
Analyse des données

Type : MIXTE


Les exemples utilisent des données externes (CSV, Excel, XML, JSON) dont l'acquisition est expliquée ou des données créées en interne (datalines) pour des démonstrations SGBD.

1 Bloc de code
PROC HTTP / PROC IMPORT
Explication :
Cet exemple utilise l'instruction FILENAME pour attribuer la fileref 'chol' à un fichier temporaire. La procédure HTTP est ensuite utilisée pour télécharger un fichier CSV depuis une URL spécifiée et le sauvegarder dans la fileref 'chol'. La procédure IMPORT lit les données CSV et crée le jeu de données SAS 'work.mycholesterol'. Enfin, PROC PRINT affiche le contenu du jeu de données pour vérifier l'importation.
Copié !
1filename chol temp;
2PROC HTTP
3 url="http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/cholesterol.csv"
4 out=chol;
5QUIT;
6PROC IMPORT datafile=chol
7 out=work.mycholesterol
8 dbms=csv
9 replace;
10RUN;
11PROC PRINT DATA=work.mycholesterol;
12RUN;
2 Bloc de code
PROC IMPORT
Explication :
Cet exemple importe des données à partir d'un fichier Microsoft Excel (.xlsx) en utilisant la procédure IMPORT et le moteur XLSX. Pour que cet exemple soit autonome, vous devez d'abord créer un fichier Excel nommé 'cholesterol.xlsx' (par exemple, en sauvegardant le fichier 'cholesterol.csv' de l'exemple précédent au format .xlsx). L'option 'VALIDVARNAME=V7' est utilisée pour convertir les noms de colonnes Excel en noms de variables SAS valides (remplaçant les espaces par des underscores). Le moteur XLSX nécessite que l'interface SAS/ACCESS to PC Files soit configurée. L'option REPLACE permet de remplacer un jeu de données SAS existant.
Copié !
1options validvarname=v7;
2PROC IMPORT datafile='cholesterol.xlsx'
3 dbms=xlsx
4 out=work.mycholesterol
5 replace;
6RUN;
3 Bloc de code
LIBNAME / DATA STEP Data
Explication :
Cet exemple montre comment créer une table directement dans un système de gestion de base de données (SGBD) externe, ici Teradata. L'instruction LIBNAME 'mytddata' est définie pour établir une connexion au serveur Teradata, incluant les informations d'identification. Un DATA step est ensuite utilisé pour créer une table nommée 'grades' dans ce SGBD en utilisant des 'datalines' pour fournir les données. La procédure DATASETS est utilisée pour afficher les informations de la bibliothèque 'mytddata', confirmant que la table a été créée dans le SGBD.
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;
4 Bloc de code
PROC SQL
Explication :
Cet exemple illustre la création d'une vue SAS (mygrades dans la bibliothèque viewlib) qui intègre une instruction LIBNAME pour une connexion à une base de données Teradata. La libref 'viewlib' est assignée à l'emplacement où la vue SAS sera stockée, utilisant le moteur V9. La clause 'USING' de l'instruction 'CREATE VIEW' permet d'embarquer les détails de connexion au SGBD, ce qui rend la vue auto-suffisante pour accéder à la table 'mytddata.grades'. Enfin, PROC PRINT exécute cette vue et affiche son contenu.
Copié !
1LIBNAME viewlib v9 'library-path';
2PROC SQL;
3 create view viewlib.mygrades as
4 select *
5 from mytddata.grades
6 using LIBNAME mytddata teradata
7 server=mytera
8 user=myid password=mypw;
9QUIT;
10PROC PRINT DATA=viewlib.mygrades noobs;
11RUN;
5 Bloc de code
PROC SQL
Explication :
Cet exemple utilise la fonction SQL Pass-Through au sein de PROC SQL pour envoyer des requêtes SQL directement à une base de données externe (Teradata). L'instruction 'CONNECT TO' établit une connexion nommée 'myconn' au serveur Teradata avec les informations d'identification spécifiées. Ensuite, une clause 'SELECT * FROM CONNECTION TO myconn (...)' permet d'exécuter une requête SQL native (filtrant les 'grades' avec 'final gt 90') directement sur le SGBD. L'instruction 'DISCONNECT FROM' est utilisée pour terminer la connexion à la base de données après l'exécution de la requête.
Copié !
1PROC SQL;
2 connect to teradata as myconn (server=mytera
3 user=myid password=mypw);
4 select *
5 from connection to myconn
6 (select *
7 from grades
8 where final gt 90);
9 disconnect from myconn;
10QUIT;
6 Bloc de code
LIBNAME / PROC PRINT
Explication :
Cet exemple importe des données à partir d'un fichier XML en utilisant le moteur XMLV2. Pour rendre cet exemple autonome, créez un fichier nommé 'nhl.xml' avec le contenu XML suivant, et remplacez 'file-path' par le chemin réel :
```xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<NHL>
<CONFERENCE> Eastern
<DIVISION> Southeast
<TEAM name="Thrashers" abbrev="ATL" />
<TEAM name="Hurricanes" abbrev="CAR" />
<TEAM name="Panthers" abbrev="FLA" />
<TEAM name="Lightning" abbrev="TB" />
<TEAM name="Capitals" abbrev="WSH" />
</DIVISION>
</CONFERENCE>

<CONFERENCE> Western
<DIVISION> Pacific
<TEAM name="Stars" abbrev="DAL" />
<TEAM name="Kings" abbrev="LA" />
<TEAM name="Ducks" abbrev="ANA" />
<TEAM name="Coyotes" abbrev="PHX" />
<TEAM name="Sharks" abbrev="SJ" />
</DIVISION>
</CONFERENCE>
</NHL>
```
L'instruction FILENAME assigne la fileref 'nhl' au fichier XML. Une deuxième instruction FILENAME assigne la fileref 'map' à un fichier qui stockera le XMLMap généré. L'instruction LIBNAME, avec le moteur XMLV2 et les options 'AUTOMAP=REPLACE' et 'XMLMAP=map', lit le fichier XML et génère un XMLMap. PROC PRINT affiche ensuite les variables 'TEAM_name' et 'TEAM_abbrev' du jeu de données 'nhl.team' créé en mémoire.
Copié !
1filename nhl 'file-path/nhl.xml';
2filename map 'file-path/nhlgenerate.map';
3LIBNAME nhl xmlv2 automap=replace xmlmap=map;
4PROC PRINT DATA=nhl.team noobs;
5 var TEAM_name TEAM_abbrev;
6RUN;
7 Bloc de code
LIBNAME / PROC DATASETS
Explication :
Cet exemple importe des données JSON en utilisant le moteur JSON. Pour rendre cet exemple autonome, créez un fichier nommé 'example.json' avec un contenu JSON valide (par exemple, un objet JSON simple avec quelques champs et valeurs) et remplacez 'file-path' par le chemin réel. L'instruction LIBNAME 'mydata' est assignée au moteur JSON et pointe vers le fichier 'example.json'. La procédure DATASETS est ensuite utilisée pour lister les jeux de données SAS créés en mémoire à partir de ce fichier JSON, vérifiant ainsi l'importation.
Copié !
1LIBNAME mydata json '/file-path/example.json';
2PROC DATASETS lib=mydata;
3RUN;
4QUIT;
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. Last updated: December 16, 2025


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.
« Pour les fichiers JSON et XML, utilisez la PROC DATASETS immédiatement après votre LIBNAME pour explorer la structure générée. Ces formats créent souvent plusieurs tables (niveaux de hiérarchie) ; il est crucial de repérer laquelle contient l'information principale avant de lancer vos analyses »