Das Skript beginnt mit der Definition von Makrovariablen zur Konfiguration des Datenquellentyps (z. B. ODBC), des CAS-Sitzungsnamens und des Caslib-Alias. Es enthält Parameter-Platzhalter für Verbindungsinformationen (Benutzername, Passwort, Datenbank, Schema). Eine CAS-Sitzung wird initialisiert, dann wird eine Caslib unter Verwendung des durch die Makrovariablen angegebenen Datenkonnektors hinzugefügt. Ein DATA STEP wird anschließend verwendet, um eine Tabelle 'LOADSAMPLE' im externen DBMS über eine für den Konnektor konfigurierte Libname zu erstellen. Diese Tabelle wird dann dreimal in CAS geladen: einmal vollständig, einmal mit einer WHERE-Klausel zum Filtern von Zeilen und einmal durch Auswahl spezifischer Variablen. Die in den CAS-Speicher geladenen Tabellen werden mit PROC PRINT überprüft. Schließlich bereinigt das Skript die Ressourcen, indem es die Quelltabelle aus dem externen DBMS löscht und die CAS-Sitzung beendet.
Datenanalyse
Type : MIXTE
Die Daten werden zunächst 'inline' über eine DATALINES-Anweisung innerhalb des Skripts definiert. Sie werden dann in eine Tabelle ('LOADSAMPLE') eines externen Datenbankverwaltungssystems (DBMS) geschrieben, dessen Typ durch die Makrovariable 'srctype' (standardmäßig ODBC) angegeben wird. Diese Daten, obwohl vom Skript erstellt, verbleiben vorübergehend extern, bevor sie in die CAS-Umgebung geladen und dort verarbeitet werden.
1 Codeblock
Makrovariablen
Erklärung : Dieser Block definiert wesentliche Makrovariablen für die Verbindungskonfiguration. `srctype` gibt den Typ des Datenbankverwaltungssystems (DBMS) an. `cas_session` und `caslib_alias` benennen die CAS-Sitzung bzw. die CAS-Bibliothek. Die anderen Variablen (`username`, `password`, `database`, `schema`, `CONNOPTS`) sind Platzhalter für die spezifischen Authentifizierungs- und Verbindungsinformationen des externen DBMS.
Kopiert!
/* Specify the DBMS engine, for example: ODBC */
%let srctype=odbc;
%let cas_session = mysess;
%let caslib_alias = datalib;
/*Specify connection parameters within a string
Edit the below variables with the required DBMS-specific conection options
Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
Most datasources will require username, password, database, and schema/server
BigQuery: requires protject and cred_path parameters
Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
Impala: requires port and conopts parameters
JDBC: requires url, class, and classpath parameters
Salesforce: requires authendpoint and catalog parameters
SAP Hana: requires instance and tabletype parameters
Teradata: requires dataTransferMode parameter
Oracle, Netezza, and MSSWL require catalog parameter
*/
%let username = ???????;
%let password = ???????;
%let database = ???????;
%let schema = ???????;
%let CONNOPTS=%str(user=???????
pwd=???????
dsn=???????);
1
/* Specify the DBMS engine, for example: ODBC */
2
%let srctype=odbc;
3
4
%let cas_session = mysess;
5
%let caslib_alias = datalib;
6
7
8
/*Specify connection parameters within a string
9
10
Edit the below variables with the required DBMS-specific conection options
11
Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
12
13
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
14
15
Most datasources will require username, password, database, and schema/server
16
BigQuery: requires protject and cred_path parameters
17
Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
18
Impala: requires port and conopts parameters
19
JDBC: requires url, class, and classpath parameters
20
Salesforce: requires authendpoint and catalog parameters
21
SAP Hana: requires instance and tabletype parameters
22
Teradata: requires dataTransferMode parameter
23
Oracle, Netezza, and MSSWL require catalog parameter
24
25
*/
26
27
%let username = ???????;
28
%let password = ???????;
29
%let database = ???????;
30
%let schema = ???????;
31
32
%let CONNOPTS=%str(user=???????
33
pwd=???????
34
dsn=???????);
2 Codeblock
CAS-Sitzung
Erklärung : Diese Anweisung initialisiert eine CAS-Sitzung mit dem durch die Makrovariable `cas_session` angegebenen Namen. Die Optionen `cashost` und `casport` sind auskommentiert, was darauf hinweist, dass sie in SAS Studio optional sein oder durch die Umgebung definiert werden können.
Kopiert!
/* Connect to CAS using cashost and casport, optional in SAS Studio */
/* options cashost="???????" casport=????; */
/* Create a CAS Session */
cas &cas_session;
1
/* Connect to CAS using cashost and casport, optional in SAS Studio */
2
/* options cashost="???????" casport=????; */
3
4
5
/* Create a CAS Session */
6
cas &cas_session;
3 Codeblock
PROC CAS (Aktion addCaslib)
Erklärung : Dieser Block verwendet `PROC CAS`, um die Aktion `addCaslib` auszuführen. Diese Aktion erstellt eine neue Caslib (`&caslib_alias`) und verbindet sie mit dem externen DBMS über den definierten `srctype`. Die Parameter `user`, `pass`, `database`, `schema` und `catalog` werden als Verbindungsoptionen an den Datenkonnektor übergeben, wodurch CAS auf die Daten des DBMS zugreifen kann.
Erklärung : Dieser DATA STEP ist entscheidend für die Erstellung der Testdaten. Er definiert zunächst eine Libname `loadlib`, die über den `srctype` und die angegebenen `CONNOPTS` auf das externe DBMS verweist. Anschließend wird eine Tabelle namens `LOADSAMPLE` in diesem externen DBMS erstellt, wobei die Daten direkt im Skript über die `datalines`-Anweisung bereitgestellt werden. Diese Tabelle simuliert eine externe Datenquelle, die bereit ist, in CAS geladen zu werden.
Erklärung : Dieser Block verwendet `PROC CAS`, um die gesamte Tabelle `LOADSAMPLE` (die sich im externen DBMS befindet und über `&caslib_alias` zugänglich ist) in den CAS-Speicher zu laden. Die Tabelle im CAS-Speicher wird `SAMDATLOAD` genannt. Die Option `replace=true` stellt sicher, dass eine Tabelle mit demselben Namen, falls vorhanden, ersetzt wird.
/* Proc cas loadtable action: loads entire table*/
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOAD" replace=true}
6
caslib="&caslib_alias"
7
path="LOADSAMPLE";
8
RUN;
9
QUIT;
6 Codeblock
PROC CAS (Aktion loadtable mit WHERE)
Erklärung : Dieser Block demonstriert das bedingte Laden von Daten. Er lädt die Tabelle `LOADSAMPLE` in CAS unter dem Namen `SAMDATLOADWHERE`, wendet jedoch einen Filter (`where="FLIGHT = 114"`) an, um nur Zeilen einzubeziehen, bei denen die Spalte 'FLIGHT' den Wert '114' hat.
Kopiert!
/* Proc cas loadtable action with where parameter: subsets the input data */
proc cas;
session &cas_session;
action loadtable
casout={name="SAMDATLOADWHERE" replace=true}
caslib="&caslib_alias"
where="FLIGHT = 114"
path="LOADSAMPLE";
run;
quit;
1
/* Proc cas loadtable action with where parameter: subsets the input data */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOADWHERE" replace=true}
6
caslib="&caslib_alias"
7
where="FLIGHT = 114"
8
path="LOADSAMPLE";
9
RUN;
10
QUIT;
7 Codeblock
PROC CAS (Aktion loadtable mit VARS)
Erklärung : Dieser Block veranschaulicht das selektive Laden von Spalten. Er lädt die Tabelle `LOADSAMPLE` in CAS unter dem Namen `SAMDATLOADVARS`, überträgt jedoch nur die Spalten 'FLIGHT', 'ORIG' und 'DEST', wodurch die Datenmenge im Speicher reduziert wird.
Kopiert!
/* Proc cas loadtable action with vars parameter: specifies variables to load */
proc cas;
session &cas_session;
action loadtable
casout={name="SAMDATLOADVARS" replace=true}
caslib="&caslib_alias"
vars={"FLIGHT", "ORIG", "DEST"}
path="LOADSAMPLE";
run;
quit;
1
/* Proc cas loadtable action with vars parameter: specifies variables to load */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION loadtable
5
casout={name="SAMDATLOADVARS" replace=true}
6
caslib="&caslib_alias"
7
vars={"FLIGHT", "ORIG", "DEST"}
8
path="LOADSAMPLE";
9
RUN;
10
QUIT;
8 Codeblock
PROC PRINT
Erklärung : Dieser Block erstellt eine Libname `caslib` vom Typ 'CAS', die auf die aktive CAS-Sitzung verweist. Anschließend wird `PROC PRINT` verwendet, um den Inhalt der drei geladenen In-Memory-Tabellen (`SAMDATLOAD`, `SAMDATLOADWHERE`, `SAMDATLOADVARS`) anzuzeigen, wodurch überprüft werden kann, ob die Lade- und Filtervorgänge korrekt ausgeführt wurden.
Kopiert!
/* Verify loadtable using caslib libref with CAS Libname engine to print in-memory tables*/
libname caslib cas sessref=&cas_session tag="";
proc print data=caslib.SAMDATLOAD;
run;
proc print data=caslib.SAMDATLOADWHERE;
run;
proc print data=caslib.SAMDATLOADVARS;
run;
1
/* Verify loadtable using caslib libref with CAS Libname engine to print in-memory tables*/
2
LIBNAME caslib cas sessref=&cas_session tag="";
3
PROC PRINTDATA=caslib.SAMDATLOAD;
4
RUN;
5
PROC PRINTDATA=caslib.SAMDATLOADWHERE;
6
RUN;
7
PROC PRINTDATA=caslib.SAMDATLOADVARS;
8
RUN;
9 Codeblock
PROC CAS (Aktion deleteSource)
Erklärung : Dieser Bereinigungsblock verwendet `PROC CAS` mit der Aktion `deleteSource`. Er löscht die Tabelle `LOADSAMPLE` aus dem externen DBMS, die durch den anfänglichen DATA STEP erstellt wurde und als Quelle für die CAS-Ladevorgänge diente, wodurch externe Ressourcen freigegeben werden.
Kopiert!
/* Clean-up: Delete files from data source associated with caslib */
proc cas;
session &cas_session;
action deleteSource
caslib="&caslib_alias"
source="LOADSAMPLE"
;
run;
quit;
1
/* Clean-up: Delete files from data source associated with caslib */
2
PROC CAS;
3
SESSION &cas_session;
4
ACTION deleteSource
5
caslib="&caslib_alias"
6
SOURCE="LOADSAMPLE"
7
;
8
RUN;
9
QUIT;
10 Codeblock
CAS-Sitzung
Erklärung : Diese Anweisung beendet die durch `&cas_session` angegebene CAS-Sitzung und gibt alle dieser Sitzung auf dem CAS-Server zugewiesenen Ressourcen frei.
Kopiert!
/* Remove CAS session */
cas &cas_session. terminate;
1
/* Remove CAS
2
session */
3
cas &cas_session. terminate;
4
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.
Urheberrechtsinformationen : SAS BEISPIELBIBLIOTHEK
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.