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

Exemples : Utilisation d'un moteur SAS pour traiter des données externes

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette documentation explore diverses méthodes pour intégrer des sources de données externes avec SAS© Viya 4 et SAS© Studio en utilisant des moteurs SAS©. Elle montre comment importer des fichiers délimités par des virgules et des données Microsoft Excel en utilisant PROC IMPORT et des moteurs SAS©/ACCESS spécifiques comme XLSX. Les exemples couvrent également la création et la manipulation de données au sein de SGBD externes (comme Teradata) en utilisant des étapes DATA SAS© et des instructions LIBNAME. Des techniques avancées telles que l'intégration d'instructions LIBNAME SAS©/ACCESS dans des vues PROC SQL et l'utilisation de la fonction SQL Pass-Through pour les requêtes directes de SGBD sont illustrées. En outre, le document fournit des conseils sur l'importation de formats de données structurées comme XML et JSON en utilisant leurs moteurs SAS© respectifs (XMLV2 et JSON). Chaque exemple souligne l'importance de configurer les interfaces SAS©/ACCESS appropriées et de gérer les conventions de dénomination des variables pour une intégration transparente des données.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP, ou nécessitent la fourniture d'un fichier externe (CSV, Excel, XML, JSON) par l'utilisateur.

1 Bloc de code
PROC IMPORT Data
Explication :
Cet exemple utilise l'instruction FILENAME pour attribuer un fileref à un fichier temporaire. La procédure HTTP spécifie l'URL d'un fichier CSV et écrit les données dans le fileref. PROC IMPORT lit ensuite les données délimitées par des virgules et crée un ensemble de données SAS. Enfin, PROC PRINT affiche l'ensemble de données importé, confirmant la bonne importation des données et des noms de colonnes.
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 Data
Explication :
Cet exemple importe des données Excel à l'aide du moteur XLSX et de PROC IMPORT. L'option VALIDVARNAME=V7 est utilisée pour convertir les noms de colonnes en noms de variables compatibles avec SAS (les espaces sont convertis en underscores). Le fichier d'entrée est spécifié via l'option DATAFILE=, le type de base de données est défini sur XLSX, et l'ensemble de données de sortie est créé dans la bibliothèque WORK. L'option REPLACE permet de remplacer un ensemble de données SAS existant.
Copié !
1options validvarname=v7;
2PROC IMPORT datafile='file-path/cholesterol.xlsx'
3 dbms=xlsx
4 out=work.mycholesterol
5 replace;
6RUN;
3 Bloc de code
DATA STEP Data
Explication :
Cet exemple montre comment une étape DATA SAS peut créer une table Teradata. L'instruction LIBNAME attribue un libref 'mytddata' au moteur Teradata et spécifie les options de connexion. L'étape DATA crée une table nommée 'grades' dans le SGBD Teradata en utilisant des données en ligne (datalines). Enfin, PROC DATASETS est utilisée pour afficher les informations de la bibliothèque 'mytddata', confirmant que le moteur est Teradata et que 'grades' est une table 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;
4 Bloc de code
PROC SQL
Explication :
Cet exemple intègre une instruction LIBNAME SAS/ACCESS directement dans une vue PROC SQL. L'instruction LIBNAME initiale attribue un libref à l'emplacement de stockage de la vue SAS. La procédure SQL crée ensuite une vue nommée 'mygrades' en sélectionnant toutes les colonnes de la table 'mytddata.grades'. L'instruction 'USING LIBNAME' embarque les détails de connexion Teradata dans la définition de la vue. Enfin, PROC PRINT exécute cette vue, récupérant les données de la table Teradata via la connexion intégrée.
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 PROC SQL utilise la fonction SQL Pass-Through pour envoyer une requête directement à une table Teradata. L'instruction CONNECT établit une connexion à la base de données. La clause FROM 'CONNECTION TO myconn' est utilisée pour exécuter une requête SQL spécifique au SGBD (ici, sélectionnant les notes finales supérieures à 90 de la table 'grades'). Enfin, l'instruction DISCONNECT met fin à la connexion à la base de données.
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
PROC PRINT Data
Explication :
Cet exemple utilise le moteur XMLV2 de SAS pour importer des données XML. La première instruction FILENAME attribue un fileref au fichier XML d'entrée. La seconde attribue un fileref à l'emplacement où un fichier XMLMap sera généré. L'instruction LIBNAME associe le libref au moteur XMLV2, en spécifiant la génération automatique de l'XMLMap. PROC PRINT est ensuite utilisée pour afficher des parties des données importées, vérifiant l'importation réussie du XML en un ensemble de données SAS 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
PROC DATASETS Data
Explication :
Cet exemple utilise le moteur JSON de SAS pour lire les données JSON. L'instruction LIBNAME attribue un libref 'mydata' au moteur JSON et spécifie le chemin du fichier JSON d'entrée. La procédure PROC DATASETS est ensuite utilisée pour afficher les ensembles de données SAS créés en mémoire à partir du fichier JSON, démontrant l'importation des données JSON sous forme d'ensembles de données SAS temporaires.
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


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
Michael
Responsable de l'infrastructure Viya.
« L'intégration de sources externes est le premier maillon de la chaîne analytique. Ce document présente un panorama complet des méthodes de connexion, du simple fichier plat au SGBD massif.

Le virage du SQL Pass-Through : C'est la technique reine pour la performance. En utilisant CONNECT TO TERADATA, vous déléguez le filtrage (clause WHERE) directement au serveur de base de données. Vous ne rapatriez dans SAS que les lignes utiles, ce qui économise la bande passante et accélère drastiquement vos traitements par rapport à un LIBNAME classique.

La robustesse de l'import (Excel/CSV) : L'option VALIDVARNAME=V7 est un réflexe de sécurité indispensable. Elle garantit que les noms de colonnes exotiques d'Excel (avec espaces ou caractères spéciaux) sont normalisés pour être utilisables sans erreur dans vos futurs calculs SAS.

L'intelligence des moteurs XMLV2 et JSON : Ces moteurs transforment des structures hiérarchiques complexes en tables relationnelles SAS. L'option AUTOMAP du moteur XML est particulièrement puissante : elle évite d'écrire manuellement des lignes de code fastidieuses pour décrire la structure du fichier.

L'agilité des Vues SQL : Intégrer une instruction USING LIBNAME dans une vue SQL est une astuce d'architecture brillante. Cela crée une vue "autonome" qui contient ses propres informations de connexion, simplifiant ainsi le partage de code entre utilisateurs sans avoir à redéfinir les accès à chaque session.

Mon conseil : Pour vos fichiers CSV hébergés en ligne, privilégiez le couple PROC HTTP et PROC IMPORT. Cela permet d'automatiser vos flux de données "Open Data" sans intervention manuelle, garantissant que vos analyses reposent toujours sur la version la plus récente du fichier distant. »