Die Beispiele verwenden generierte Daten (Datalines), um die Autonomie des Codes zu gewährleisten.
1 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses Beispiel veranschaulicht die einfachste Verwendung der Prozedur DMSRVDATASVC. Es erstellt einen Eingabedatensatz `work.insrv` mit Namen und Adressen. Anschließend wird ein Dienst namens 'StandardizeAddresses' (der auf dem DataFlux-Server existieren muss) unter Verwendung dieses Datensatzes als Eingabe ausgeführt und die Ergebnisse in `work.outsrv_basic` gespeichert. Abschließend wird der Ausgabedatensatz angezeigt.
Kopiert!
DATA work.insrv;
LENGTH Name $30 Address $50;
INPUT Name $ Address $;
DATALINES;
John Doe 123 Main St
Jane Smith 456 Oak Ave
;
RUN;
PROC DMSRVDATASVC
SERVICE='StandardizeAddresses'
DATA=work.insrv
OUT=work.outsrv_basic;
RUN;
PROC PRINT DATA=work.outsrv_basic;
TITLE 'Résultats du service de standardisation basique';
RUN;
1
DATA 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
;
8
RUN;
9
10
PROC DMSRVDATASVC
11
SERVICE='StandardizeAddresses'
12
DATA=work.insrv
13
OUT=work.outsrv_basic;
14
RUN;
15
16
PROC PRINTDATA=work.outsrv_basic;
17
TITLE 'Résultats du service de standardisation basique';
18
RUN;
2 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses Beispiel zeigt, wie zusätzliche Optionen beim Ausführen eines Dienstes angegeben werden. Neben `SERVICE`, `DATA` und `OUT` wird `SERVER` verwendet, um den DataFlux-Server (hier 'localhost') explizit zu benennen, und `PORT` für einen nicht standardmäßigen Port (21037). Die Option `LOG` wird hinzugefügt, um Fehlermeldungen oder Informationsmeldungen des Dienstes in einem SAS-Datensatz zu erfassen.
Kopiert!
DATA work.input_data;
LENGTH Email $50;
INPUT Email $;
DATALINES;
test @example.com
invalid-email
another.one @domain.co.uk
;
RUN;
PROC DMSRVDATASVC
SERVICE='EmailValidationService'
SERVER='localhost'
PORT=21037
DATA=work.input_data
OUT=work.output_data_intermediate
LOG=work.service_log;
RUN;
PROC PRINT DATA=work.output_data_intermediate;
TITLE 'Résultats du service de validation d''e-mails';
RUN;
PROC PRINT DATA=work.service_log;
TITLE 'Journal d''exécution du service';
RUN;
1
DATA 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
;
9
RUN;
10
11
PROC 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;
18
RUN;
19
20
PROC PRINTDATA=work.output_data_intermediate;
21
TITLE 'Résultats du service de validation d''e-mails';
22
RUN;
23
24
PROC PRINTDATA=work.service_log;
25
TITLE 'Journal d''exécution du service';
26
RUN;
3 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses erweiterte Beispiel simuliert eine Batch-Verarbeitung von Kundennamen mithilfe eines Standardisierungsdienstes. Die Option `ERRORONFAILURE=YES` ist hier entscheidend: Sie weist SAS an, einen Fehler zu generieren, wenn der DataFlux-Dienst fehlschlägt, was für die Integration in automatisierte Verarbeitungsketten nützlich ist. Der Code enthält ein einfaches Makro, um den Erfolg des Vorgangs über den Rückgabecode der Datensatzöffnung zu überprüfen und Fehler programmatisch zu melden.
Kopiert!
DATA work.customer_names;
LENGTH CustomerID 8 FirstName $20 LastName $20;
INPUT CustomerID FirstName $ LastName $;
DATALINES;
1 John Doe
2 Jane Smith
3 PETER J. JONES
4 mary_ann
;
RUN;
PROC DMSRVDATASVC
SERVICE='NameStandardizationBatch'
DATA=work.customer_names
OUT=work.standardized_names
ERRORONFAILURE=YES;
RUN;
/* Vérifier les erreurs potentielles dans le log */
%MACRO CheckLog;
%LOCAL rc;
%LET rc = %SYSFUNC(OPEN(WORK.standardized_names, I));
%IF &rc EQ 0 %THEN %DO;
%PUT NOTE: Le service a été exécuté avec succès.;
%LET rc = %SYSFUNC(CLOSE(&rc));
%END;
%ELSE %DO;
%PUT ERROR: Le service a échoué. Vérifiez le log SAS pour plus de détails.;
%END;
%MEND CheckLog;
%CheckLog;
PROC PRINT DATA=work.standardized_names;
TITLE 'Noms des clients standardisés';
RUN;
1
DATA 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
;
10
RUN;
11
12
PROC DMSRVDATASVC
13
SERVICE='NameStandardizationBatch'
14
DATA=work.customer_names
15
OUT=work.standardized_names
16
ERRORONFAILURE=YES;
17
RUN;
18
19
/* Vérifier les erreurs potentielles dans le log */
%PUT ERROR: Le service a échoué. Vérifiez le log SAS pour plus de détails.;
29
%END;
30
%MEND CheckLog;
31
32
%CheckLog;
33
34
PROC PRINTDATA=work.standardized_names;
35
TITLE 'Noms des clients standardisés';
36
RUN;
4 Codeblock
PROC DMSRVDATASVC Data
Erklärung : Dieses Beispiel demonstriert die Integration der Prozedur DMSRVDATASVC in eine SAS Viya-Umgebung mit CAS-Tabellen. Es initialisiert eine CAS-Sitzung und erstellt eine CAS-Tabelle (`mycas.raw_products`). Die Prozedur DMSRVDATASVC wird anschließend aufgerufen, wobei diese CAS-Tabelle als Eingabe angegeben wird. Der Datenqualitätsdienst (hier 'ProductDescriptionCleanse') verarbeitet die Tabelle im verteilten Speicher, und die Ergebnisse werden in einer neuen CAS-Tabelle (`mycas.cleaned_products`) gespeichert. Die Befehle PROC CASUTIL und PROC PRINT werden verwendet, um die CAS-Tabellen zu überprüfen und die verarbeiteten Daten anzuzeigen, wobei die In-Memory-Verarbeitung hervorgehoben wird.
Kopiert!
CAS;
CASLIB _ALL_ ASSIGN;
DATA _NULL_;
CALL SYMPUTX('CAS_SESSION_NAME', %SYSFUNC(GETOPTION(CASAUTOSESS)));
RUN;
/* Création d'une table CAS à partir de données SAS */
DATA mycas.raw_products;
LENGTH ProductID $10 Description $100;
INPUT ProductID $ Description $;
DATALINES;
P001 Hand Sanitizer 500ml
P002 Hand sanitizer 100ml
P003 Hand SANITIZER 200 ml
;
RUN;
/* Exécution du service Data Quality sur la table CAS */
PROC DMSRVDATASVC
SERVICE='ProductDescriptionCleanse'
DATA=mycas.raw_products
OUT=mycas.cleaned_products;
RUN;
/* Affichage des résultats de la table CAS */
PROC CASUTIL SESSREF=&CAS_SESSION_NAME;
LIST TABLES / CASLIB='CASUSER';
QUIT;
PROC PRINT DATA=mycas.cleaned_products;
TITLE 'Descriptions de produits nettoyées via CAS';
RUN;
/* Création d'une table CAS à partir de données SAS */
9
DATA 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
;
17
RUN;
18
19
/* Exécution du service Data Quality sur la table CAS */
20
PROC DMSRVDATASVC
21
SERVICE='ProductDescriptionCleanse'
22
DATA=mycas.raw_products
23
OUT=mycas.cleaned_products;
24
RUN;
25
26
/* Affichage des résultats de la table CAS */
27
PROC CASUTIL SESSREF=&CAS_SESSION_NAME;
28
LIST TABLES / CASLIB='CASUSER';
29
QUIT;
30
31
PROC PRINTDATA=mycas.cleaned_products;
32
TITLE 'Descriptions de produits nettoyées via CAS';
33
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.