Les données sont récupérées via une requête HTTP authentifiée vers l'API REST du SAS Workload Orchestrator. Le corps de la réponse, au format JSON, est ensuite lu et traité comme une source de données SAS.
1 Bloc de code
Variables Macro & FILENAME Statements
Explication : Ce bloc initialise des variables macro pour l'authentification (`username`, `pw`) et l'URL de base (`baseURL`) de l'API SAS Workload Orchestrator. Il définit également deux filerefs temporaires, `body` et `headout`, pour stocker respectivement le corps et les en-têtes de la réponse HTTP.
Explication : La procédure `PROC HTTP` est utilisée pour envoyer une requête GET à l'API des jobs du SAS Workload Orchestrator. L'URL est construite dynamiquement avec la variable macro `baseURL` et un paramètre `state=ALL` pour récupérer toutes les tâches non archivées. L'authentification basique est gérée via `webusername` et `webpassword`. Le corps de la réponse est enregistré dans le fileref `body` et les en-têtes dans `headout`. Un en-tête `Accept` est spécifié pour un format JSON spécifique à l'API.
Explication : Le premier `libname jobinfo;` désassigne toute libname existante portant ce nom, assurant une réinitialisation propre. Le second `libname jobinfo json fileref=body;` crée une bibliothèque SAS `jobinfo` en interprétant le contenu JSON du fileref `body` (qui contient la réponse de l'API) comme des tables SAS. Ceci rend les données JSON accessibles via des tables SAS.
Explication : Cette procédure `PROC SQL` crée une nouvelle table `jobs` dans la bibliothèque `WORK`. Elle effectue une jointure complexe entre plusieurs tables virtuelles générées par la `LIBNAME JSON` (`jobinfo.jobs`, `jobinfo.jobs_processinginfo`, `jobinfo.jobs_request`) en utilisant les colonnes `ordinal_jobs`. L'objectif est de consolider les informations pertinentes sur les tâches (ID, état, file d'attente, horaires, hôte, code de sortie, nom de la tâche, utilisateur, commande) en une seule vue ordonnée par ID de tâche.
Copié !
proc sql;
create table jobs as
select
a.id,
b.state, b.queue, b.submitTime, b.startTime, b.endTime,
b.processId, b.executionHost, b.exitCode,
c.name, c.user, c.cmd from
jobinfo.jobs a,
jobinfo.jobs_processinginfo b,
jobinfo.jobs_request c
where a.ordinal_jobs = b.ordinal_jobs and
b.ordinal_jobs = c.ordinal_jobs
order by a.id;
quit;
Explication : La procédure `PROC PRINT` affiche le contenu de la table `work.jobs` qui a été créée précédemment, présentant ainsi les informations consolidées sur les tâches du SAS Workload Orchestrator.
Copié !
proc print data=work.jobs; run;
1
PROC PRINTDATA=work.jobs; RUN;
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.
Informations de Copyright : Author: Greg Wootton Date: 02JAN2019
« L'accès programmatique aux informations du SAS Workload Orchestrator (SWO) est essentiel pour les administrateurs souhaitant automatiser la surveillance de la grille ou créer des rapports de performance personnalisés. Ce script démontre une méthode robuste pour transformer des métriques système complexes en données exploitables au sein de votre session SAS. »
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.