Veröffentlicht am :
Verwaltung EXTERNE

Abfrage von SAS Workload Orchestrator Jobinformationen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Programm verwendet `PROC HTTP`, um sich mit grundlegender Authentifizierung mit der SAS© Workload Orchestrator API zu verbinden. Es ruft JSON-Daten über Jobs (alle nicht archivierten Status) ab und verwendet dann eine `LIBNAME JSON`, um diese Daten zu lesen. Schließlich wird `PROC SQL` verwendet, um die verschiedenen Teile der JSON-Informationen (Jobs, Processinginfo, Request) zu verbinden und eine einzige Tabelle zu erstellen. Die Ergebnisse werden dann über `PROC PRINT` angezeigt.
Datenanalyse

Type : EXTERNE


Die Daten werden über eine authentifizierte HTTP-Anfrage an die REST-API des SAS Workload Orchestrator abgerufen. Der Antworttext im JSON-Format wird dann als SAS-Datenquelle gelesen und verarbeitet.

1 Codeblock
Variables Macro & FILENAME Statements
Erklärung :
Dieser Block initialisiert Makrovariablen für die Authentifizierung (`username`, `pw`) und die Basis-URL (`baseURL`) der SAS Workload Orchestrator API. Er definiert auch zwei temporäre Filerefs, `body` und `headout`, um den HTTP-Antworttext bzw. die Header zu speichern.
Kopiert!
1%let username = sas;
2%let pw = password;
3%let baseURL = http://wlo-master.demo.sas.com:8901;
4 
5filename body temp;
6filename headout temp;
2 Codeblock
PROC HTTP Data
Erklärung :
Die `PROC HTTP`-Prozedur wird verwendet, um eine GET-Anfrage an die Jobs-API des SAS Workload Orchestrator zu senden. Die URL wird dynamisch mit der Makrovariablen `baseURL` und einem Parameter `state=ALL` aufgebaut, um alle nicht archivierten Jobs abzurufen. Die grundlegende Authentifizierung wird über `webusername` und `webpassword` gehandhabt. Der Antworttext wird im Fileref `body` und die Header in `headout` gespeichert. Ein `Accept`-Header wird für ein spezifisches JSON-Format der API angegeben.
Kopiert!
1PROC HTTP URL="&baseURL/sasgrid/api/jobs?state=ALL" out=body
2headerout=headout headerout_overwrite webusername="&username" webpassword="&pw";
3headers "Accept"="application/vnd.sas.sasgrid.jobs;version=1;charset=utf-8";
4RUN;
3 Codeblock
LIBNAME Statement Data
Erklärung :
Das erste `libname jobinfo;` hebt jede vorhandene Libname mit diesem Namen auf, um eine saubere Neuinitialisierung zu gewährleisten. Das zweite `libname jobinfo json fileref=body;` erstellt eine SAS-Bibliothek `jobinfo`, indem der JSON-Inhalt des Filerefs `body` (der die API-Antwort enthält) als SAS-Tabellen interpretiert wird. Dadurch werden die JSON-Daten über SAS-Tabellen zugänglich.
Kopiert!
1LIBNAME jobinfo;
2LIBNAME jobinfo json fileref=body;
3 
4 Codeblock
PROC SQL Data
Erklärung :
Diese `PROC SQL`-Prozedur erstellt eine neue Tabelle `jobs` in der Bibliothek `WORK`. Sie führt eine komplexe Verknüpfung zwischen mehreren virtuellen Tabellen durch, die von der `LIBNAME JSON` (`jobinfo.jobs`, `jobinfo.jobs_processinginfo`, `jobinfo.jobs_request`) generiert wurden, unter Verwendung der Spalten `ordinal_jobs`. Ziel ist es, die relevanten Informationen über die Jobs (ID, Status, Warteschlange, Zeiten, Host, Exit-Code, Jobname, Benutzer, Befehl) in einer einzigen Ansicht zu konsolidieren, geordnet nach der Job-ID.
Kopiert!
1PROC SQL;
2create TABLE jobs as
3 select
4 a.id,
5 b.state, b.queue, b.submitTime, b.startTime, b.endTime,
6 b.processId, b.executionHost, b.exitCode,
7 c.name, c.user, c.cmd from
8 jobinfo.jobs a,
9 jobinfo.jobs_processinginfo b,
10 jobinfo.jobs_request c
11 where a.ordinal_jobs = b.ordinal_jobs and
12 b.ordinal_jobs = c.ordinal_jobs
13 order BY a.id;
14QUIT;
5 Codeblock
PROC PRINT
Erklärung :
Die `PROC PRINT`-Prozedur zeigt den Inhalt der zuvor erstellten Tabelle `work.jobs` an und präsentiert so die konsolidierten Informationen über die Jobs des SAS Workload Orchestrator.
Kopiert!
1PROC PRINT DATA=work.jobs; RUN;
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.
Urheberrechtsinformationen : Author: Greg Wootton Date: 02JAN2019


Banner
Expertenrat
Expert
Michael
Responsable de l'infrastructure Viya.
« Die direkte Abfrage der SAS Workload Orchestrator (SWO) Microservices mittels PROC HTTP ist ein moderner und effizienter Ansatz für die Grid-Administration. Diese Methode verwandelt Ihre SAS-Sitzung in eine leistungsstarke Monitoring-Konsole, mit der Sie Echtzeitdaten zu Warteschlangenstatus, Knotenauslastung und Job-Lebenszyklen extrahieren können, ohne auf die grafische Benutzeroberfläche angewiesen zu sein. »