Pour garantir que votre étape DATA reste bien "dans le moteur" (In-Memory) et ne bascule pas en mode local (plus lent), vérifiez toujours que vos tables d'entrée et de sortie utilisent la même session CAS. C'est la clé pour une fluidité totale de vos pipelines de données.
Le script initialise une session CAS et assigne toutes les caslibs. Il utilise ensuite deux étapes DATA pour : 1) Copier la table 'baseball' de SASHELP vers la caslib 'casuser' sous le même nom. 2) Créer une nouvelle table 'baseball2' dans la caslib 'casuser' à partir de 'casuser.baseball', en calculant une nouvelle variable 'x' comme le ratio 'nruns' divisé par 'nhits'. L'ensemble du processus se déroule entièrement au sein du moteur Cloud Analytic Services (CAS).
Analyse des données
Type : SASHELP
La source principale des données est la table 'baseball' de la bibliothèque SASHELP, qui est une bibliothèque de données d'exemple fournie par SAS. Ces données sont ensuite copiées et manipulées au sein de la caslib 'casuser'.
1 Bloc de code
Configuration CAS
Explication : Ce bloc configure la session CAS en activant la collecte de métriques et assigne toutes les caslibs disponibles, ce qui permet d'accéder et de manipuler des données stockées dans CAS.
Copié !
cas sessopts=(metrics=true);
caslib _all_ assign;
1
cas sessopts=(metrics=true);
2
caslib _all_ assign;
2 Bloc de code
DATA STEP Data
Explication : Cette étape DATA crée une nouvelle table nommée 'baseball' dans la caslib 'casuser'. Elle copie toutes les observations et variables de la table 'sashelp.baseball' vers la table CAS, rendant les données disponibles pour le traitement distribué dans CAS.
Copié !
data casuser.baseball;
set sashelp.baseball;
run;
1
2
DATA casuser.baseball;
3
SET sashelp.baseball;
4
RUN;
5
3 Bloc de code
DATA STEP Data
Explication : Cette deuxième étape DATA crée une nouvelle table CAS nommée 'baseball2' à partir de la table 'casuser.baseball' précédemment créée. Elle introduit une nouvelle variable 'x' calculée comme le ratio des variables 'nruns' et 'nhits' pour chaque observation. Cette opération est exécutée directement dans CAS.
Copié !
data casuser.baseball2;
set casuser.baseball;
x=nruns/nhits;
run;
1
DATA casuser.baseball2;
2
SET casuser.baseball;
3
x=nruns/nhits;
4
RUN;
L'Astuce Pro
L'astuce technique primordiale pour garantir une exécution 100% in-memory réside dans la vérification de la bibliothèque source et de destination : en utilisant CASUSER pour les deux tables dans votre second DATA Step, vous forcez le moteur SAS à exécuter le code directement sur les noeuds de calcul CAS (workers) sans jamais rapatrier les données vers le client SAS. Pour confirmer ce comportement et mesurer l'efficacité du parallélisme, l'option sessopts=(metrics=true) est cruciale car elle affichera dans votre journal les statistiques réelles d'utilisation CPU et mémoire au niveau du serveur, vous permettant de valider que votre calcul de ratio x=nruns/nhits bénéficie bien de la puissance distribuée.
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.