Publié le :
ETL CREATION_INTERNE_ET_EXTERNE

Exemples : Lire et Créer des Tables CAS

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le premier exemple illustre le processus de lecture d'un fichier CSV distant (fourni via une URL) et son chargement dans une table CAS en mémoire. Il utilise la méthode d'accès FILENAME URL et un DATA step exécuté sur le SAS© Compute Server pour structurer les données. Ensuite, la procédure CASUTIL est employée pour sauvegarder une copie permanente de la table CAS en mémoire. Le second exemple démontre comment un DATA step peut être utilisé pour convertir une table CAS en mémoire existante en un jeu de données SAS© classique, stocké dans une bibliothèque SAS© définie par l'utilisateur. Ces exemples mettent en évidence l'interopérabilité entre les sessions CAS, les librairies CAS et les librairies SAS© pour la gestion des données.
Analyse des données

Type : CREATION_INTERNE_ET_EXTERNE


Le premier exemple lit des données brutes à partir d'un fichier CSV externe accessible via une URL. Le deuxième exemple génère ses propres données de manière interne via un DATA step.

1 Bloc de code
DATA STEP / PROC CASUTIL
Explication :
Ce code charge un fichier CSV depuis une URL dans une table CAS. Le 'FILENAME' statement définit l'URL. Le 'DATA step' lit le fichier en spécifiant un 'libref' CAS (mycas.names) pour la sortie, indiquant que les données sont chargées en mémoire CAS. 'INFILE' gère le format CSV, et 'INPUT' assigne les variables. Enfin, 'PROC CASUTIL' est utilisée pour sauvegarder la table CAS en mémoire de manière permanente et la lister.
Copié !
1filename names url
2 "http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/names.csv";
3 
4DATA mycas.names;
5 INFILE names dsd truncover firstobs=2;
6 INPUT BRTH_YR :$10. GNDR :$10. ETHCTY :$10. NM :$10.
7 CNT :$10. RNK :$10.;
8RUN;
9 
10PROC CASUTIL incaslib='casuser';
11 save casdata='names' outcaslib='casuser' replace;
12 list;
13RUN;
2 Bloc de code
DATA STEP Data
Explication :
Cet exemple convertit une table CAS en un jeu de données SAS. Premièrement, une session CAS est démarrée et un 'libref' CAS (mycas) est créé. Un premier 'DATA step' génère une table CAS nommée 'mycas.earnings' avec des données calculées. Ensuite, un 'libname' est défini pour une bibliothèque SAS locale ('mySAS'). Enfin, un second 'DATA step' lit la table CAS 'mycas.earnings' et la sauvegarde en tant que jeu de données SAS 'mySAS.earnings'.
Copié !
1cas casauto sessopts=(caslib='casuser');
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5DATA mycas.earnings;
6 Amount=1000;
7 Rate=.075/12;
8 DO month=1 to 12;
9 Earned +(amount+earned)*(rate);
10 END;
11RUN;
12PROC PRINT DATA=mycas.earnings;
13RUN;
14 
15LIBNAME mySAS "u/user/myfiles/";
16
17DATA mySAS.earnings;
18 SET mycas.earnings;
19RUN;
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


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« Ces deux exemples illustrent parfaitement la flexibilité de SAS Viya. Le passage de données entre le moteur traditionnel (Compute Server) et le moteur en mémoire (CAS) est une opération quotidienne pour un data scientist ou un ingénieur de données.

Le chargement direct (URL vers CAS) : C'est une méthode d'une efficacité redoutable. En utilisant FILENAME URL combiné à un DATA step pointant vers une bibliothèque CAS, vous court-circuitez les étapes de stockage intermédiaire. Les données sont lues sur le web et "poussées" directement dans la mémoire distribuée. C'est le flux idéal pour l'ingestion de données Open Data ou API.

La Persistance via CASUTIL : Une table chargée en mémoire CAS est par définition volatile (elle disparaît à la fin de la session). L'instruction SAVE de la PROC CASUTIL est donc l'étape de sécurité indispensable pour transformer cette mémoire vive en un fichier physique permanent (souvent au format .sashdat), garantissant que vos données sont prêtes pour une utilisation ultérieure ou par d'autres utilisateurs.

La "Descente" vers SAS 9 (Egress) : Parfois, vous avez besoin de ramener des résultats calculés dans CAS vers une bibliothèque SAS traditionnelle (moteur V9). Le passage d'une SET mycas.table vers une DATA mysas.table effectue ce transfert. Attention cependant : si votre table CAS est gigantesque, ce rapatriement vers le Compute Server peut saturer votre réseau ou votre disque local. C'est une opération à réserver aux résultats agrégés ou aux échantillons.

Mon conseil : Pour des performances optimales lors du chargement de fichiers CSV volumineux vers CAS, privilégiez si possible les Data Connectors (via PROC CASUTIL LOAD). Cependant, la méthode du DATA Step présentée ici reste inégalée pour sa capacité à transformer et nettoyer les données "à la volée" pendant le transfert grâce aux instructions INPUT et IF. »