Veröffentlicht am :
Administration CREATION_INTERNE

Eine Formatbibliothek bewerben

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Diese Funktion ermöglicht es, eine SAS©-Formatbibliothek (oft über PROC FORMAT erstellt) in eine globale Caslib zu bewerben oder sie für andere CAS-Benutzer zugänglich zu machen. Dies ist in einer verteilten Umgebung wie SAS© Viya entscheidend, um sicherzustellen, dass benutzerdefinierte Formate bei der Verarbeitung von In-Memory-Daten in CAS korrekt erkannt und angewendet werden. 'Bewerbung' in diesem Kontext bedeutet, diese Formate persistent und innerhalb der CAS-Umgebung teilbar zu machen, typischerweise durch Speicherung in einer geeigneten Caslib. Dies vermeidet die Notwendigkeit, Formate für jede Sitzung oder jeden Benutzer neu zu definieren und gewährleistet Konsistenz bei der Dateninterpretation.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP, um eine Formatbibliothek direkt innerhalb von Caslibs zu erstellen und zu bewerben.

1 Codeblock
PROC FORMAT, PROC CAS Data
Erklärung :
Dieses Beispiel veranschaulicht die gängigste Methode zur 'Bewerbung' von Formaten in SAS Viya: durch deren direkte Erstellung in einer für Formate vorgesehenen Caslib (hier 'myglobalformats'). Dadurch werden die Formate '$genderfmt' und 'agegrpfmt' sofort für alle nachfolgenden Operationen in der angegebenen Caslib und potenziell für andere Benutzer verfügbar, wenn die Caslib global und persistent ist. Es definiert Formate und wendet sie auf eine neue CAS-Tabelle an.
Kopiert!
1options casopts=(caslib=casuser timeout=900);
2cas casauto;
3 
4PROC CAS;
5 SESSION casauto.addcaslib / caslib='myglobalformats' path='&_TEMP_/myformats' subdirs=true datasource=(srctype='path');
6QUIT;
7 
8PROC FORMAT lib=myglobalformats;
9 value $genderfmt
10 'M' = 'Masculin'
11 'F' = 'Féminin';
12 value agegrpfmt
13 low-<18 = 'Mineur'
14 18-high = 'Adulte';
15RUN;
16 
17PROC CAS;
18 SESSION casauto.addFmtSearchPath / searchPath={'myglobalformats'};
19QUIT;
20 
21DATA casuser.clients (promote=yes);
22 INPUT Name $ Gender $ Age;
23 FORMAT Gender $genderfmt. Age agegrpfmt.;
24DATALINES;
25Alice F 25
26Bob M 17
27Carol F 30
28David M 20
29;
30RUN;
31 
32PROC PRINT DATA=casuser.clients;
33RUN;
34 
35PROC CAS;
36 SESSION casauto.removeFmtSearchPath / searchPath={'myglobalformats'};
37 SESSION casauto.dropcaslib / caslib='myglobalformats';
38QUIT;
2 Codeblock
PROC FORMAT, DATA STEP Data
Erklärung :
Dieses Beispiel simuliert die Verwendung eines `$statusfmt`-Formats, das 'beworben' wurde (in einer Caslib 'myglobalformats' verfügbar gemacht). Es zeigt, wie sichergestellt wird, dass die Caslib, die die Formate enthält, im Formatsuchpfad der CAS-Sitzung (`addFmtSearchPath`) ist und wie dieses Format dann auf neue Daten angewendet wird, die in einem im CAS-Modus ausgeführten DATA-Step erstellt wurden. Es hebt die Zugänglichkeit des Formats nach seiner 'Bewerbung' hervor.
Kopiert!
1options casopts=(caslib=casuser timeout=900);
2cas casauto;
3 
4PROC CAS;
5 SESSION casauto.addcaslib / caslib='myglobalformats' path='&_TEMP_/myformats' subdirs=true datasource=(srctype='path');
6QUIT;
7 
8PROC FORMAT lib=myglobalformats;
9 value $statusfmt
10 'A' = 'Actif'
11 'I' = 'Inactif'
12 'X' = 'En attente'
13 other = 'Inconnu';
14RUN;
15 
16PROC CAS;
17 SESSION casauto.addFmtSearchPath / searchPath={'myglobalformats'};
18QUIT;
19 
20DATA casuser.ventes (promote=yes);
21 INPUT Produit $ StatutCommande $ Montant;
22 FORMAT StatutCommande $statusfmt.;
23DATALINES;
24PC A 1200
25Souris I 25
26Clavier A 80
27Ecran X 300
28;
29RUN;
30 
31PROC PRINT DATA=casuser.ventes;
32RUN;
33 
34PROC CAS;
35 SESSION casauto.removeFmtSearchPath / searchPath={'myglobalformats'};
36 SESSION casauto.dropcaslib / caslib='myglobalformats';
37QUIT;
3 Codeblock
PROC FORMAT, %MACRO, PROC CAS Data
Erklärung :
Dieses fortgeschrittene Beispiel verwendet ein SAS-Makro, um die Erstellung und 'Bewerbung' eines Formats zu dynamisieren. Es zeigt, wie ein Format erstellt und über ein Makro in einer Caslib verfügbar gemacht werden kann. Darüber hinaus wird ein Konfliktszenario illustriert, in dem ein Format mit demselben Namen neu definiert wird und wie das System die neueste oder priorisierte Definition im Formatsuchpfad verwendet.
Kopiert!
1options casopts=(caslib=casuser timeout=900);
2cas casauto;
3 
4PROC CAS;
5 SESSION casauto.addcaslib / caslib='dynamicformats' path='&_TEMP_/dynamicformats' subdirs=true datasource=(srctype='path');
6QUIT;
7 
8%macro create_and_promote_format(LIBNAME, fmtname);
9 PROC FORMAT lib=&LIBNAME;
10 value &fmtname
11 1 = 'Faible'
12 2 = 'Moyen'
13 3 = 'Élevé';
14 RUN;
15
16 PROC CAS;
17 SESSION casauto.addFmtSearchPath / searchPath={'&libname'};
18 QUIT;
19%mend;
20 
21%create_and_promote_format(LIBNAME=dynamicformats, fmtname=level);
22 
23PROC FORMAT lib=dynamicformats;
24 value level
25 1 = 'Bas'
26 2 = 'Moy'
27 3 = 'Haut';
28RUN;
29 
30DATA casuser.evaluations;
31 INPUT ID Niveau;
32 FORMAT Niveau level.;
33DATALINES;
34101 1
35102 2
36103 3
37;
38RUN;
39 
40PROC PRINT DATA=casuser.evaluations;
41RUN;
42 
43PROC CAS;
44 SESSION casauto.removeFmtSearchPath / searchPath={'dynamicformats'};
45 SESSION casauto.dropcaslib / caslib='dynamicformats';
46QUIT;
4 Codeblock
PROC FORMAT, PROC CAS, DATA STEP Data
Erklärung :
Dieses Beispiel konzentriert sich auf die Lebenszyklusverwaltung von 'beworbenen' Formaten in SAS Viya. Es zeigt, wie über `listFmtSearchPath` überprüft wird, welche Caslibs derzeit im Formatsuchpfad einer CAS-Sitzung enthalten sind. Anschließend wird demonstriert, wie eine Caslib explizit aus dem Suchpfad entfernt (`removeFmtSearchPath`) und wie temporäre Ressourcen (die Caslib selbst) nach Gebrauch bereinigt werden, was für die Ressourcenverwaltung in einer gemeinsam genutzten CAS-Umgebung unerlässlich ist.
Kopiert!
1options casopts=(caslib=casuser timeout=900);
2cas casauto;
3 
4PROC CAS;
5 SESSION casauto.addcaslib / caslib='temp_formats' path='&_TEMP_/temp_formats' subdirs=true datasource=(srctype='path');
6QUIT;
7 
8PROC FORMAT lib=temp_formats;
9 value $yesnofmt
10 'Y' = 'Oui'
11 'N' = 'Non';
12RUN;
13 
14PROC CAS;
15 SESSION casauto.addFmtSearchPath / searchPath={'temp_formats'};
16QUIT;
17 
18PROC CAS;
19 SESSION casauto.listFmtSearchPath;
20QUIT;
21 
22DATA casuser.sondage;
23 INPUT Question $ Reponse $;
24 FORMAT Reponse $yesnofmt.;
25DATALINES;
26Q1 Y
27Q2 N
28;
29RUN;
30 
31PROC PRINT DATA=casuser.sondage;
32RUN;
33 
34PROC CAS;
35 SESSION casauto.removeFmtSearchPath / searchPath={'temp_formats'};
36QUIT;
37 
38PROC CAS;
39 SESSION casauto.listFmtSearchPath;
40QUIT;
41 
42PROC CAS;
43 SESSION casauto.dropcaslib / caslib='temp_formats' _all_=true;
44QUIT;
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.