Die Daten werden direkt im Skript über `DATA`-Schritte erstellt, die 100 Millionen zufällige Beobachtungen in temporären Tabellen generieren, sowohl lokal als auch in der entfernten Sitzung. Systeminformationen werden auch über den Zugriff auf SAS-Systemmakros (`%sysget`, `&sysuserid` usw.) verwendet und angezeigt.
1 Codeblock
Macros système
Erklärung : Dieser Block initialisiert die SSL-Netzwerkverschlüsselungsoption. Anschließend werden `%put`-Makros verwendet, um verschiedene Umgebungs- und Prozessinformationen der lokalen (Client-)SAS-Sitzung anzuzeigen, wie z. B. Benutzer-ID, Hostname, Prozess-ID, Prozessmodus und den Status spezifischer SAS Viya-Umgebungsvariablen (`SASCLOUDNATIVE`, `TCPNOIPADDR`, `SAS_SERVICES_URL`).
Kopiert!
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;
Erklärung : Dieser Block definiert Makrovariablen (`_sessionName`, `_sessionType`, `_namespace`, `_casserver`), die für eine Verbindung zu einer CAS-Sitzung verwendet werden sollen. Die tatsächliche CAS-Verbindungszeile (`cas ...`) ist auskommentiert, was darauf hinweist, dass die Verbindung in dieser Skriptausführung nicht aktiv hergestellt wird.
Kopiert!
/* CAS session */
%let _sessionName=&sysuserid;
%let _sessionType=sas9;
%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=sas9;
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 Codeblock
SAS/CONNECT
Erklärung : Dieser Block konfiguriert die Verbindungsparameter für eine SAS/CONNECT-Sitzung. Er definiert das Makro `host` mit der Adresse des entfernten Servers (ein externer NodePort wird gewählt). Die `SIGNON`-Anweisung stellt die Verbindung zum entfernten Server unter Verwendung des Benutzernamens 'geladm' und eines expliziten Passworts her. Das Makro `%syslput` wird verwendet, um den Wert von `_sessionType` an die entfernte Sitzung zu senden, wo er über `_sessionTypeRemote` zugänglich ist.
Erklärung : Dieser `rsubmit`-Block führt den Code auf der entfernten SAS-Sitzung aus. Er verwendet `%put`-Makros, ähnlich denen des Clients, um Umgebungs- und Prozessinformationen des entfernten Servers anzuzeigen. Dies ist nützlich, um die Konfiguration und Identität der entfernten Sitzung zu überprüfen.
Kopiert!
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;
Erklärung : Dieser `DATA STEP`-Block wird lokal ausgeführt und erstellt eine große SAS-Tabelle namens `local`, gefolgt vom Wert von `_sessionType` (z. B. `localsas9`). Die Tabelle enthält zwei Variablen (`i` und `j`) und wird mit 100 Millionen Beobachtungen gefüllt, wobei `j` eine Zufallszahl ist.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung : Dieser `rsubmit`-Block führt den Code auf der entfernten SAS-Sitzung aus. Er erstellt eine SAS-Tabelle ähnlich der im vorherigen Block, diesmal jedoch auf dem entfernten Server, benannt `remote`, gefolgt vom Wert von `_sessionTypeRemote`. Nach der Datenerstellung wird das Makro `%sysrput` verwendet, um den Pfad des Arbeitsverzeichnisses (`WORK`) von der entfernten Sitzung in eine Makrovariable namens `rsaswork` in der lokalen Sitzung zu übertragen.
Kopiert!
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 Codeblock
LIBNAME
Erklärung : Dieser Block zeigt zuerst den Wert der Makrovariablen `rsaswork` an (die den Pfad des entfernten Arbeitsverzeichnisses enthält). Anschließend wird die `LIBNAME`-Anweisung verwendet, um eine Bibliothek namens `rsaswork` in der lokalen Sitzung zu definieren, die über die etablierte SAS/CONNECT-Verbindung auf das Arbeitsverzeichnis der entfernten Sitzung verweist. Dies ermöglicht der lokalen Sitzung den direkten Zugriff auf die im entfernten Arbeitsbereich erstellten Dateien.
Erklärung : Dieser Block enthält auskommentierte Codeabschnitte. Der erste Abschnitt hätte die entfernte Sitzung für eine bestimmte Zeit offen gehalten (`call sleep`). Der zweite Abschnitt enthält den Befehl `signoff _all;` und `cas ... terminate;`, die zur Beendigung der SAS/CONNECT- und CAS-Sitzungen verwendet worden wären, falls diese etabliert worden wären. Diese Zeilen sind als Beispiel oder Referenz enthalten, sind aber in der aktuellen Ausführung des Skripts nicht aktiv.
Kopiert!
/* When running as a batch job - need to keep the session open fro fe minutes */
/*
rsubmit;
data _null_;
call sleep(5,60);
run;
endrsubmit;
*/
* waitfor _all_;
/* Close both CAS and connect sessions */
/*
cas &_sessionName._&_sessionType terminate;
signoff _all_;
*/
1
/* When running as a batch job - need to keep the session open fro fe minutes */
2
/*
3
rsubmit;
4
data _null_;
5
call sleep(5,60);
6
run;
7
endrsubmit;
8
*/
9
10
* waitfor _all_;
11
12
13
/* Close both CAS and connect sessions */
14
/*
15
cas &_sessionName._&_sessionType terminate;
16
signoff _all_;
17
*/
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.