Veröffentlicht am :
Verwaltung INTERNE_ERSTELLUNG

Verwaltung von CAS- und Connect-Sitzungen und Datenerstellung

Dieser Code ist auch verfügbar auf: English Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Skript beginnt mit der Definition von Netzwerkverschlüsselungsoptionen. Anschließend werden verschiedene Informationen zur Clientumgebung über `%put`-Makros und Systemvariablen (`&sysuserid`, `&syshostname` usw.) angezeigt. Es konfiguriert die Parameter für eine CAS-Sitzung, einschließlich Sitzungsname, Typ, Namespace und CAS-Server, und stellt dann eine Verbindung zu diesem her. Ein Abschnitt widmet sich der Konfiguration einer SAS©/CONNECT-Sitzung, mit der Möglichkeit, zwischen einer internen Cluster-IP oder einem externen NodePort zu wählen. Das Skript verwendet dann `SIGNON`, um sich mit spezifischen Anmeldeinformationen mit dem Remote-Server zu verbinden. Nach dem Aufbau der Sitzungen führt es `rsubmit`-Befehle aus, um die Systemvariablen der Serverumgebung anzuzeigen und einen großen Datensatz (`remote studio`) auf dem Remote-Server zu erstellen. Ein ähnlicher Datensatz (`local studio`) wird lokal erstellt. Die Sitzungsverwaltung umfasst Kommentare zur Beendigung der CAS-Sitzung und zur Trennung aller SAS©/CONNECT-Sitzungen.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Die Daten werden intern durch das Skript über DATA STEPs generiert, wobei die Funktion `ranuni` verwendet wird, um Zufallswerte zu erstellen. Es werden keine externen Dateien gelesen.

1 Codeblock
Globale Optionen und %put-Makros
Erklärung :
Dieser Block konfiguriert den Netzwerkverschlüsselungsalgorithmus auf SSL. Anschließend werden Informationen zur lokalen SAS-Clientumgebung unter Verwendung der `%put`-Makros und verschiedener Systemvariablen und Makrofunktionen (`&sysuserid`, `&syshostname`, `%sysget`) angezeigt. Dies ermöglicht die Überprüfung der Konfiguration und Identität der aktuellen SAS-Sitzung.
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 &TCPNOIPADDR_state;
15 
16%let ENVIRONMENT="%sysget(SAS_SERVICES_URL)";
17%put &ENVIRONMENT;
2 Codeblock
CAS Session Management
Erklärung :
Dieser Block initialisiert Makrovariablen (`_sessionName`, `_sessionType`, `_namespace`, `_casserver`), die zur Angabe der Verbindungsdetails zu einem CAS-Server verwendet werden. Der Befehl `cas` wird dann verwendet, um eine benannte CAS-Sitzung einzurichten, wobei der CAS-Controller-Host, der Port und die Sitzungsoptionen, wie z.B. die Metrikenerfassung, angegeben werden. Dies bereitet die Umgebung für die Ausführung von CAS-Code vor.
Kopiert!
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 */
8cas &_sessionName._&_sessionType host="controller.sas-cas-server-&_casserver..&_namespace..svc.cluster.local" port=5570 sessopts=(metrics=true);
3 Codeblock
SAS/CONNECT Session Management
Erklärung :
Dieser Block bereitet eine SAS/CONNECT-Verbindung vor und stellt sie her. Er definiert die Makrovariable `host` mit der Adresse und dem Port des Remote-Connect-Servers. Der Befehl `SIGNON` wird dann verwendet, um sich mit spezifischen Anmeldeinformationen (`geladm`, `lnxsas`) mit dem Remote-Server zu verbinden. `%syslput` wird verwendet, um den Wert von `_sessionType` an die Remote-Umgebung zu senden, sodass er für nachfolgende `rsubmit`-Blöcke verfügbar ist.
Kopiert!
1/* Connect session */
2/* INTERNAL ClusterIP */
3 %let host=sas-connect-spawner 17551;
4/* EXTERNAL NodePort */
5* %let host=gelcorp.pdcesx03138.race.sas.com 30377;
6 
7SIGNON host user='geladm' pass='lnxsas';
8%syslput _sessionTypeRemote=&_sessionType;
4 Codeblock
Macros %put (Remote)
Erklärung :
Dieser Block, der auf dem Remote-Server über `rsubmit` ausgeführt wird, zeigt detaillierte Informationen über die SAS-Serverumgebung an. Er verwendet dieselben Systemvariablen und Makrofunktionen wie der Client-Block, um einen Überblick über den Benutzer, den Prozess und die Umgebung des Remote-Servers zu geben.
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;
5 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP erstellt einen lokalen SAS-Datensatz namens `localstudio` (unter Verwendung des Wertes von `_sessionType`). Er generiert 100 Millionen Beobachtungen, jede mit zwei Variablen: `i` (ein Zähler) und `j` (ein Zufallswert, generiert durch die Funktion `ranuni`). Dieser Block veranschaulicht die Erstellung großer In-Memory-Daten in der lokalen Sitzung.
Kopiert!
1DATA local&_sessionType;
2 DO i=1 to 100000000;
3 j=ranuni(1234);
4 OUTPUT;
5 END;
6RUN;
6 Codeblock
DATA STEP (Remote) und %sysrput-Makro Data
Erklärung :
Dieser Block, der auf dem Remote-Server über `rsubmit` ausgeführt wird, zeigt zunächst den Wert des Makros `_sessionTypeRemote` an. Anschließend erstellt er einen großen Remote-SAS-Datensatz namens `remotestudio` (unter Verwendung des Wertes von `_sessionTypeRemote`) mit 100 Millionen Beobachtungen und Zufallswerten, ähnlich dem lokalen Block. Schließlich wird `%sysrput` verwendet, um den Pfad des Arbeitsverzeichnisses (`work`) vom Remote-Server abzurufen und in der Makrovariablen `rsaswork` der lokalen Sitzung zu speichern, wodurch dieser Pfad nach `endrsubmit` referenziert werden kann.
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;
7 Codeblock
LIBNAME
Erklärung :
Dieser Block zeigt den Wert des Makros `rsaswork` (den Pfad des Remote-Arbeitsverzeichnisses) an und weist dann eine SAS-Bibliothek (`libname`) mit dem Namen `rsaswork` zu. Diese Bibliothek ist mit dem Remote-Pfad (`&rsaswork`) verknüpft und verwendet die SAS/CONNECT-Sitzung (`server=host`), um auf die dort befindlichen Daten zuzugreifen. Dies ermöglicht die Interaktion mit den Daten des Remote-Servers von der lokalen Sitzung aus.
Kopiert!
1%put "&rsaswork";
2LIBNAME rsaswork "&rsaswork" server=host;
3 
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.