Publicado el :
Calidad de datos CREATION_INTERNE

Ejecutar un servicio de DataFlux Data Management Studio (PROC DMSRVDATASVC)

Este código también está disponible en: Deutsch English Français
En espera de validación
Este procedimiento se utiliza para interactuar con los servicios de calidad de datos creados y desplegados a través de DataFlux Data Management Studio. Permite enviar un conjunto de datos SAS© como entrada a un servicio, hacer que el servicio se ejecute en el servidor de DataFlux Data Management y luego recuperar los resultados en un nuevo conjunto de datos SAS©. Las opciones clave incluyen la especificación del SERVICIO a ejecutar, el conjunto de datos de entrada (DATA=) y el conjunto de datos de salida (OUT=). El puerto de comunicación es por defecto 21036 si no se especifica.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) para asegurar la autonomía del código.

1 Bloque de código
PROC DMSRVDATASVC Data
Explicación :
Este ejemplo ilustra el uso más simple del procedimiento DMSRVDATASVC. Crea un conjunto de datos de entrada `work.insrv` con nombres y direcciones. Luego, ejecuta un servicio llamado 'StandardizeAddresses' (que debe existir en el servidor DataFlux) usando este conjunto de datos como entrada y almacena los resultados en `work.outsrv_basic`. Finalmente, muestra el conjunto de datos de salida.
¡Copiado!
1DATA work.insrv;
2 LENGTH Name $30 Address $50;
3 INPUT Name $ Address $;
4 DATALINES;
5 John Doe 123 Main St
6 Jane Smith 456 Oak Ave
7 ;
8RUN;
9 
10PROC DMSRVDATASVC
11 SERVICE='StandardizeAddresses'
12 DATA=work.insrv
13 OUT=work.outsrv_basic;
14RUN;
15 
16PROC PRINT DATA=work.outsrv_basic;
17 TITLE 'Résultats du service de standardisation basique';
18RUN;
2 Bloque de código
PROC DMSRVDATASVC Data
Explicación :
Este ejemplo muestra cómo especificar opciones adicionales al ejecutar un servicio. Además de `SERVICE`, `DATA` y `OUT`, utiliza `SERVER` para designar explícitamente el servidor DataFlux (aquí 'localhost') y `PORT` para un puerto no estándar (21037). La opción `LOG` se añade para capturar los mensajes de error o información del servicio en un conjunto de datos SAS.
¡Copiado!
1DATA work.input_data;
2 LENGTH Email $50;
3 INPUT Email $;
4 DATALINES;
5 test @example.com
6 invalid-email
7 another.one @domain.co.uk
8 ;
9RUN;
10 
11PROC DMSRVDATASVC
12 SERVICE='EmailValidationService'
13 SERVER='localhost'
14 PORT=21037
15 DATA=work.input_data
16 OUT=work.output_data_intermediate
17 LOG=work.service_log;
18RUN;
19 
20PROC PRINT DATA=work.output_data_intermediate;
21 TITLE 'Résultats du service de validation d''e-mails';
22RUN;
23 
24PROC PRINT DATA=work.service_log;
25 TITLE 'Journal d''exécution du service';
26RUN;
3 Bloque de código
PROC DMSRVDATASVC Data
Explicación :
Este ejemplo avanzado simula el procesamiento por lotes de nombres de clientes utilizando un servicio de estandarización. La opción `ERRORONFAILURE=YES` es crucial aquí: le indica a SAS que genere un error si el servicio DataFlux falla, lo que es útil para la integración en cadenas de procesamiento automatizadas. El código incluye una macro simple para verificar el éxito de la operación a través del código de retorno de apertura del conjunto de datos, señalando los errores de forma programática.
¡Copiado!
1DATA work.customer_names;
2 LENGTH CustomerID 8 FirstName $20 LastName $20;
3 INPUT CustomerID FirstName $ LastName $;
4 DATALINES;
5 1 John Doe
6 2 Jane Smith
7 3 PETER J. JONES
8 4 mary_ann
9 ;
10RUN;
11 
12PROC DMSRVDATASVC
13 SERVICE='NameStandardizationBatch'
14 DATA=work.customer_names
15 OUT=work.standardized_names
16 ERRORONFAILURE=YES;
17RUN;
18 
19/* Verificar posibles errores en el log */
20%MACRO CheckLog;
21 %LOCAL rc;
22 %LET rc = %SYSFUNC(OPEN(WORK.standardized_names, I));
23 %IF &rc EQ 0 %THEN %DO;
24 %PUT NOTE: El servicio se ejecutó correctamente.;
25 %LET rc = %SYSFUNC(CLOSE(&rc));
26 %END;
27 %ELSE %DO;
28 %PUT ERROR: El servicio falló. Consulte el log de SAS para más detalles.;
29 %END;
30%MEND CheckLog;
31 
32%CheckLog;
33 
34PROC PRINT DATA=work.standardized_names;
35 TITLE 'Noms des clients standardisés';
36RUN;
4 Bloque de código
PROC DMSRVDATASVC Data
Explicación :
Este ejemplo demuestra la integración del procedimiento DMSRVDATASVC en un entorno SAS Viya con tablas CAS. Inicializa una sesión CAS y crea una tabla CAS (`mycas.raw_products`). El procedimiento DMSRVDATASVC se llama luego especificando esta tabla CAS como entrada. El servicio de calidad de datos (aquí 'ProductDescriptionCleanse') procesa la tabla en memoria distribuida, y los resultados se almacenan en una nueva tabla CAS (`mycas.cleaned_products`). Los comandos PROC CASUTIL y PROC PRINT se utilizan para verificar las tablas CAS y mostrar los datos procesados, destacando el procesamiento en memoria.
¡Copiado!
1CAS;
2CASLIB _ALL_ ASSIGN;
3 
4DATA _NULL_;
5 CALL SYMPUTX('CAS_SESSION_NAME', %SYSFUNC(GETOPTION(CASAUTOSESS)));
6RUN;
7 
8/* Creación de una tabla CAS a partir de datos SAS */
9DATA mycas.raw_products;
10 LENGTH ProductID $10 Description $100;
11 INPUT ProductID $ Description $;
12 DATALINES;
13 P001 Hand Sanitizer 500ml
14 P002 Hand sanitizer 100ml
15 P003 Hand SANITIZER 200 ml
16 ;
17RUN;
18 
19/* Ejecución del servicio de Calidad de Datos en la tabla CAS */
20PROC DMSRVDATASVC
21 SERVICE='ProductDescriptionCleanse'
22 DATA=mycas.raw_products
23 OUT=mycas.cleaned_products;
24RUN;
25 
26/* Visualización de los resultados de la tabla CAS */
27PROC CASUTIL SESSREF=&CAS_SESSION_NAME;
28 LIST TABLES / CASLIB='CASUSER';
29QUIT;
30 
31PROC PRINT DATA=mycas.cleaned_products;
32 TITLE 'Descriptions de produits nettoyées via CAS';
33RUN;
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 : Copyright © SAS Institute Inc. All Rights Reserved