Publicado el :

Solicitud de información sobre las tareas de SAS Workload Orchestrator

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El programa utiliza `PROC HTTP` para conectarse a la API de SAS© Workload Orchestrator con autenticación básica. Recupera datos JSON sobre las tareas (todos los estados no archivados), luego utiliza una `LIBNAME JSON` para leer estos datos. Finalmente, `PROC SQL` se emplea para unir las diferentes partes de la información JSON (jobs, processinginfo, request) y crear una tabla única. Los resultados se muestran a través de `PROC PRINT`.
Análisis de datos

Type : EXTERNO


Los datos se recuperan a través de una solicitud HTTP autenticada a la API REST de SAS Workload Orchestrator. El cuerpo de la respuesta, en formato JSON, se lee y procesa como una fuente de datos SAS.

1 Bloque de código
Variables Macro & FILENAME Statements
Explicación :
Este bloque inicializa variables macro para la autenticación (`username`, `pw`) y la URL base (`baseURL`) de la API de SAS Workload Orchestrator. También define dos filerefs temporales, `body` y `headout`, para almacenar respectivamente el cuerpo y los encabezados de la respuesta HTTP.
¡Copiado!
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 Bloque de código
PROC HTTP Data
Explicación :
El procedimiento `PROC HTTP` se utiliza para enviar una solicitud GET a la API de trabajos de SAS Workload Orchestrator. La URL se construye dinámicamente con la variable macro `baseURL` y un parámetro `state=ALL` para recuperar todas las tareas no archivadas. La autenticación básica se maneja a través de `webusername` y `webpassword`. El cuerpo de la respuesta se guarda en el fileref `body` y los encabezados en `headout`. Se especifica un encabezado `Accept` para un formato JSON específico de la API.
¡Copiado!
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 Bloque de código
LIBNAME Statement Data
Explicación :
El primer `libname jobinfo;` desasigna cualquier libname existente con ese nombre, asegurando un reinicio limpio. El segundo `libname jobinfo json fileref=body;` crea una biblioteca SAS `jobinfo` interpretando el contenido JSON del fileref `body` (que contiene la respuesta de la API) como tablas SAS. Esto hace que los datos JSON sean accesibles a través de tablas SAS.
¡Copiado!
1LIBNAME jobinfo;
2LIBNAME jobinfo json fileref=body;
3 
4 Bloque de código
PROC SQL Data
Explicación :
Este procedimiento `PROC SQL` crea una nueva tabla `jobs` en la biblioteca `WORK`. Realiza una unión compleja entre varias tablas virtuales generadas por `LIBNAME JSON` (`jobinfo.jobs`, `jobinfo.jobs_processinginfo`, `jobinfo.jobs_request`) utilizando las columnas `ordinal_jobs`. El objetivo es consolidar la información relevante sobre las tareas (ID, estado, cola, horarios, host, código de salida, nombre de la tarea, usuario, comando) en una sola vista ordenada por ID de tarea.
¡Copiado!
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 Bloque de código
PROC PRINT
¡Copiado!
1PROC PRINT DATA=work.jobs; RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Author: Greg Wootton Date: 02JAN2019


Banner
Consejo del Experto
Expert
Michael
Responsable de l'infrastructure Viya.
« El acceso programático a los datos de SAS Workload Orchestrator (SWO) es fundamental para los administradores que necesitan automatizar la supervisión de la infraestructura de grid o generar informes de rendimiento personalizados. Este script demuestra un método robusto para transformar métricas complejas del sistema en conjuntos de datos accionables dentro de su sesión de SAS. »