Les données sont générées de manière interne par le script via des DATA STEPs, utilisant la fonction `ranuni` pour créer des valeurs aléatoires. Aucun fichier externe n'est lu.
1 Bloc de code
Options globales et macros %put
Explication : Ce bloc configure l'algorithme de cryptage réseau à SSL. Il affiche ensuite des informations sur l'environnement client SAS local en utilisant les macros `%put` et diverses variables système et fonctions macro (`&sysuserid`, `&syshostname`, `%sysget`). Cela permet de vérifier la configuration et l'identité de la session SAS actuelle.
Copié !
OPTIONS NETENCRYPTALGORITHM=SSL;
%put ********** CLIENT ********;
%put My local user ID is: &sysuserid;
%put The local host name is: &syshostname;
%put The local process name is: &sysprocessname;
%put The local process ID is: &sysprocessid;
%put The local process mode is: &sysprocessmode;
%let SASCLOUDNATIVE_state="%sysget(SASCLOUDNATIVE)";
%put &SASCLOUDNATIVE_state;
%let TCPNOIPADDR_state="%sysget(TCPNOIPADDR)";
%put &TCPNOIPADDR_state;
%let ENVIRONMENT="%sysget(SAS_SERVICES_URL)";
%put &ENVIRONMENT;
Explication : Ce bloc initialise des variables macro (`_sessionName`, `_sessionType`, `_namespace`, `_casserver`) utilisées pour spécifier les détails de la connexion à un serveur CAS. La commande `cas` est ensuite utilisée pour établir une session CAS nommée, en spécifiant l'hôte du contrôleur CAS, le port et les options de session, telles que la collecte de métriques. Cela prépare l'environnement pour l'exécution de code CAS.
Copié !
/* CAS session */
%let _sessionName=&sysuserid;
%let _sessionType=studio;
%let _namespace=gelcorp;
%let _casserver=default;
/* Start a CAS session on the cas-shared-&_casserver CAS server */
cas &_sessionName._&_sessionType host="controller.sas-cas-server-&_casserver..&_namespace..svc.cluster.local" port=5570 sessopts=(metrics=true);
1
/* CAS session */
2
%let _sessionName=&sysuserid;
3
%let _sessionType=studio;
4
%let _namespace=gelcorp;
5
%let _casserver=default;
6
7
/* Start a CAS session on the cas-shared-&_casserver CAS server */
8
cas &_sessionName._&_sessionType host="controller.sas-cas-server-&_casserver..&_namespace..svc.cluster.local" port=5570 sessopts=(metrics=true);
3 Bloc de code
SAS/CONNECT Session Management
Explication : Ce bloc prépare et établit une connexion SAS/CONNECT. Il définit la variable macro `host` avec l'adresse et le port du serveur de connexion distant. La commande `SIGNON` est ensuite utilisée pour se connecter au serveur distant en utilisant des identifiants (`geladm`, `lnxsas`). `%syslput` est utilisé pour envoyer la valeur de `_sessionType` à l'environnement distant, la rendant disponible pour les blocs `rsubmit` ultérieurs.
Explication : Ce bloc, exécuté sur le serveur distant via `rsubmit`, affiche des informations détaillées sur l'environnement du serveur SAS. Il utilise les mêmes variables système et fonctions macro que le bloc client pour fournir un aperçu de l'utilisateur, du processus et de l'environnement du serveur distant.
Copié !
rsubmit;
%put ********** SERVER ********;
%put My remote user ID is: &sysuserid;
%put The remote host name is: &syshostname;
%put The remote process name is: &sysprocessname;
%put The remote process ID is: &sysprocessid;
%put The remote process mode is: &sysprocessmode;
%let SASCLOUDNATIVE_state="%sysget(SASCLOUDNATIVE)";
%put &SASCLOUDNATIVE_state;
%let TCPNOIPADDR_state="%sysget(TCPNOIPADDR)";
%put &TCPNOIPADDR_state;
%let ENVIRONMENT="%sysget(SAS_SERVICES_URL)";
%put &ENVIRONMENT;
endrsubmit;
Explication : Ce DATA STEP crée un jeu de données SAS local nommé `localstudio` (en utilisant la valeur de `_sessionType`). Il génère 100 millions d'observations, chacune avec deux variables : `i` (un compteur) et `j` (une valeur numérique aléatoire générée par la fonction `ranuni`). Ce bloc illustre la création de données volumineuses en mémoire sur la session locale.
Copié !
data local&_sessionType;
do i=1 to 100000000;
j=ranuni(1234);
output;
end;
run;
1
DATA local&_sessionType;
2
DO i=1 to 100000000;
3
j=ranuni(1234);
4
OUTPUT;
5
END;
6
RUN;
6 Bloc de code
DATA STEP (Remote) et Macro %sysrput Data
Explication : Exécuté sur le serveur distant via `rsubmit`, ce bloc affiche d'abord la valeur de la macro `_sessionTypeRemote`. Il crée ensuite un grand jeu de données SAS distant nommé `remotestudio` (en utilisant la valeur de `_sessionTypeRemote`) avec 100 millions d'observations et des valeurs aléatoires similaires au bloc local. Enfin, `%sysrput` est utilisé pour récupérer le chemin du répertoire de travail (`work`) du serveur distant et le stocker dans la macro `rsaswork` de la session locale, ce qui permet de référencer ce chemin après le `endrsubmit`.
Copié !
rsubmit;
%put &_sessionTypeRemote;
data remote&_sessionTypeRemote;
do i=1 to 100000000;
j=ranuni(1234);
output;
end;
run;
%sysrput rsaswork=%sysfunc(pathname(work));
endrsubmit;
1
rsubmit;
2
%put &_sessionTypeRemote;
3
4
DATA remote&_sessionTypeRemote;
5
DO i=1 to 100000000;
6
j=ranuni(1234);
7
OUTPUT;
8
END;
9
RUN;
10
11
%sysrput rsaswork=%sysfunc(pathname(work));
12
endrsubmit;
7 Bloc de code
LIBNAME
Explication : Ce bloc affiche la valeur de la macro `rsaswork` (le chemin du répertoire de travail distant) puis attribue une bibliothèque SAS (`libname`) nommée `rsaswork`. Cette bibliothèque est liée au chemin distant (`&rsaswork`) et utilise la session SAS/CONNECT (`server=host`) pour accéder aux données qui y résident. Cela permet d'interagir avec les données du serveur distant depuis la session locale.
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.
« Dans un environnement cloud-native comme SAS Viya, la maîtrise de l'interaction entre le Client, le Serveur de Calcul distant et CAS (Cloud Analytic Services) est le pilier d'une architecture haute performance. Ce script illustre parfaitement une stratégie de "triangulation du calcul" : l'exécution de logique locale, le déchargement de tâches lourdes via SAS/CONNECT (RSUBMIT) et la préparation au traitement massivement parallèle dans CAS. »
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.