Veröffentlicht am :
Administration CREATION_INTERNE

SAS/CONNECT- und CAS-Sitzungsverwaltung

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Der Skript beginnt mit der Anzeige von Informationen über die Client-Laufzeitumgebung (Benutzer-ID, Host, Prozess). Anschließend versucht er, Systemvariablenzustände im Zusammenhang mit SASCLOUDNATIVE und TCPNOIPADDR sowie die URL der SAS©-Dienste abzurufen. Er initialisiert und startet eine CAS-Sitzung und stellt dann eine SAS©/CONNECT-Verbindung zu einem entfernten Host her (intern oder extern je nach Konfiguration). Nachdem er ähnliche Informationen für die entfernte Umgebung über RSUBMIT angezeigt hat, erstellt er lokal eine große Tabelle und dann eine weitere große Tabelle auf dem entfernten Server. Er verwendet die LIBNAME-Anweisung, um von der lokalen Sitzung aus auf das entfernte Arbeitsverzeichnis zuzugreifen. Eine 5-minütige Pause ist in der entfernten Sitzung enthalten, um die Sitzung im Batch-Modus offen zu halten. Schließlich beendet er die CAS- und SAS©/CONNECT-Sitzungen ordnungsgemäß.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden intern im Skript mithilfe von DATA STEPs generiert, die zwei separate Tabellen (eine lokale und eine entfernte) erstellen, jede mit 100 Millionen Beobachtungen und einer zufälligen numerischen Variable.

1 Codeblock
MACRO
Erklärung :
Dieser Block initialisiert die Option `NETENCRYPTALGORITHM` auf `SSL` für die Netzwerksicherheit. Anschließend werden verschiedene Informationen über die lokale Client-Laufzeitumgebung angezeigt, wie z. B. Benutzer-ID, Hostname, Prozessname und -ID sowie dessen Modus. Außerdem werden der Status der Umgebungsvariablen `SASCLOUDNATIVE`, `TCPNOIPADDR` und `SAS_SERVICES_URL` abgerufen und angezeigt.
Kopiert!
1OPTIONS NETENCRYPTALGORITHM=SSL;
2 
3%put ********** CLIENT ********;
4%put My local user ID is: &sysuserid;
5%put The local host name is: &syshostname;
6%put The local process name is: &sysprocessname;
7%put The local process ID is: &sysprocessid;
8%put The local process mode is: &sysprocessmode;
9 
10%let SASCLOUDNATIVE_state="%sysget(SASCLOUDNATIVE)";
11%put &SASCLOUDNATIVE_state;
12 
13%let TCPNOIPADDR_state="%sysget(TCPNOIPADDR)";
14%put &ENVIRONMENT="%sysget(SAS_SERVICES_URL)";
15%put &ENVIRONMENT;
2 Codeblock
CAS / SAS/CONNECT
Erklärung :
Dieser Block definiert Makrovariablen zur Konfiguration einer CAS-Sitzung, einschließlich des Sitzungsnamens, des Typs, des Namensraums und des CAS-Servers. Anschließend wird eine CAS-Sitzung mit den angegebenen Parametern gestartet. Danach wird der Host für eine SAS/CONNECT-Verbindung (mit Optionen für eine interne Cluster-IP oder einen externen NodePort) definiert und eine SAS/CONNECT-Sitzung zum entfernten Server unter Verwendung eines definierten Benutzers und Passworts hergestellt. Schließlich wird die Makrovariable `_sessionType` über `%syslput` an die entfernte Sitzung übergeben.
Kopiert!
1/* CAS session */
2%let _sessionName=&sysuserid;
3%let _sessionType=batch;
4%let _namespace=gelcorp;
5%let _casserver=default;
6 
7/* Start a CAS session on the cas-shared-&_casserver CAS server */
8cas &_sessionName._&_sessionType host="controller.sas-cas-server-&_casserver..&_namespace..svc.cluster.local" port=5570 sessopts=(metrics=true);
9 
10 
11/* Connect session */
12/* INTERNAL ClusterIP */
13 %let host=sas-connect-spawner 17551;
14/* EXTERNAL NodePort */
15* %let host=gelcorp.pdcesx03138.race.sas.com 30377;
16 
17SIGNON host user='geladm' pass='lnxsas';
18%syslput _sessionTypeRemote=&_sessionType;
3 Codeblock
MACRO (via RSUBMIT)
Erklärung :
Dieser Block wird auf dem Remote-Server über `RSUBMIT` ausgeführt. Er zeigt Informationen an, die denen des Clients ähneln, jedoch für die Umgebung des Remote-Servers, wie Benutzer-ID, Host, Name und Prozess-ID sowie dessen Modus. Er ruft auch den Status der Umgebungsvariablen `SASCLOUDNATIVE`, `TCPNOIPADDR` und `SAS_SERVICES_URL` auf dem Server ab und zeigt ihn an.
Kopiert!
1rsubmit;
2 %put ********** SERVER ********;
3 %put My remote user ID is: &sysuserid;
4 %put The remote host name is: &syshostname;
5 %put The remote process name is: &sysprocessname;
6 %put The remote process ID is: &sysprocessid;
7 %put The remote process mode is: &sysprocessmode;
8 
9 %let SASCLOUDNATIVE_state="%sysget(SASCLOUDNATIVE)";
10 %put &SASCLOUDNATIVE_state;
11
12 %let TCPNOIPADDR_state="%sysget(TCPNOIPADDR)";
13 %put &TCPNOIPADDR_state;
14
15 %let ENVIRONMENT="%sysget(SAS_SERVICES_URL)";
16 %put &ENVIRONMENT;
17endrsubmit;
4 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt eine SAS-Tabelle namens `localbatch` (wobei `&_sessionType` 'batch' ist) in der lokalen Arbeitsbibliothek. Diese Tabelle wird mit 100 Millionen Beobachtungen generiert, wobei jede einen Index `i` und eine Variable `j` enthält, die mit Zufallszahlen gefüllt ist.
Kopiert!
1DATA local&_sessionType;
2 DO i=1 to 100000000;
3 j=ranuni(1234);
4 OUTPUT;
5 END;
6RUN;
5 Codeblock
DATA STEP / MACRO (via RSUBMIT) Data
Erklärung :
Dieser Block, der über `RSUBMIT` auf dem Remote-Server ausgeführt wird, zeigt zuerst den Typ der Remote-Sitzung an. Anschließend erstellt er eine SAS-Tabelle namens `remotebatch` in der Arbeitsbibliothek des Remote-Servers, ähnlich der lokalen Tabelle, mit 100 Millionen Zufallsbeobachtungen. Schließlich verwendet er `%sysrput`, um den Pfad zur Arbeitsbibliothek des Remote-Servers an die lokale Sitzung zurückzugeben, gespeichert in der Makrovariable `rsaswork`.
Kopiert!
1rsubmit;
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));
12endrsubmit;
6 Codeblock
LIBNAME
Erklärung :
Dieses Block zeigt den Pfad der Remote-Arbeitsbibliothek an. Anschließend wird eine `LIBNAME`-Anweisung verwendet, um eine Verknüpfung `rsaswork` in der lokalen SAS-Sitzung zu erstellen, die über die SAS/CONNECT-Verbindung (`server=host`) auf den Pfad der Remote-Arbeitsbibliothek (`&rsaswork`) verweist. Dies ermöglicht der lokalen Sitzung den direkten Zugriff auf die im Arbeitsverzeichnis des Remote-Servers gespeicherten Daten.
Kopiert!
1%put "&rsaswork";
2LIBNAME rsaswork "&rsaswork" server=host;
3 
7 Codeblock
DATA STEP (via RSUBMIT)
Erklärung :
Ausgeführt auf dem Remote-Server via `RSUBMIT`, verwendet dieser `DATA _NULL_`-Block die Funktion `CALL SLEEP` um die Remote-Sitzung für 5 Minuten (300 Sekunden) zu pausieren. Dies ist nützlich, um die Sitzung aktiv zu halten, insbesondere in Stapelverarbeitungsumgebungen, wo die Sitzung sonst vorzeitig beendet werden könnte.
Kopiert!
1rsubmit;
2 DATA _null_;
3 call sleep(5,60);
4 RUN;
5endrsubmit;
8 Codeblock
CAS / SAS/CONNECT
Erklärung :
Dieser Block gewährleistet das ordnungsgemäße Beenden offener Sitzungen. Er beendet die CAS-Sitzung, die durch `&_sessionName._&_sessionType` spezifiziert ist, und verwendet `SIGNOFF _ALL_`, um alle aktiven SAS/CONNECT-Sitzungen zu trennen.
Kopiert!
1* waitfor _all_;
2 
3 
4/* Close both CAS and connect sessions */
5cas &_sessionName._&_sessionType terminate;
6signoff _all_;
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.