Das Programm beginnt mit der Definition von Makrovariablen für den Datenquellentyp (ODBC), den Namen der CAS-Sitzung und den Alias der CASLIB. Es enthält Platzhalter für Verbindungsinformationen (Benutzername, Passwort, Datenbank, Schema). Nach dem Aufbau einer CAS-Sitzung wird die Aktion `addCaslib` von PROC CAS verwendet, um eine CASLIB zu erstellen, die auf die angegebene ODBC-Quelle verweist, wodurch CAS auf externe Daten zugreifen kann. Anschließend wird ein DATA STEP verwendet, um eine In-Memory-Tabelle namens 'COLUMNSAMPLE' innerhalb dieser CASLIB zu erstellen, wobei Daten direkt im Skript (Datalines) bereitgestellt werden. Das Skript verwendet dann die CAS-Aktion `table.columnInfo` auf drei verschiedene Arten: zuerst, um Informationen zu allen Spalten von 'COLUMNSAMPLE' abzurufen, dann für Variablen, die mit dem Parameter `vars` angegeben sind, und schließlich mit dem Parameter `inputs` als alternative Methode zur Auswahl der Variablen. Das Skript endet mit der Beendigung der CAS-Sitzung.
Datenanalyse
Type : MIXTE
Die für die Demonstration verwendeten Daten (Tabelle 'COLUMNSAMPLE') werden direkt im Skript über DATALINES-Anweisungen erstellt, was sie zu einer internen Quelle macht. Das Skript ist jedoch so konfiguriert, dass es über die Aktion `addCaslib` eine Verbindung zu einer externen Datenquelle (ODBC) herstellt, aber keine Daten tatsächlich aus dieser externen Quelle für die `columnInfo`-Beispiele gelesen werden.
1 Codeblock
Macro Variables / CAS Setup
Erklärung : Dieser Block initialisiert Makrovariablen (`srctype`, `cas_session`, `caslib_alias`, `username`, `password`, `database`, `schema`, `CONNOPTS`), die zur Konfiguration der Verbindung zur Datenquelle und zur CAS-Sitzung verwendet werden. Die Zeile `cas &cas_session;` stellt eine neue CAS-Sitzung namens 'mysess' her, die für alle nachfolgenden CAS-Operationen unerlässlich ist.
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
Most datasources will require username, password, database, and schema/server
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
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=???????);
/* Connect to CAS using cashost and casport, optional in SAS Studio */
/* options cashost="????????" casport=????; */
/* Create a CAS Session */
cas &cas_session;
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
Most datasources will require username, password, database, and schema/server
14
Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
15
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=???????);
35
36
/* Connect to CAS using cashost and casport, optional in SAS Studio */
37
/* options cashost="????????" casport=????; */
38
39
40
/* Create a CAS Session */
41
cas &cas_session;
2 Codeblock
PROC CAS (addCaslib action)
Erklärung : Dieser Block verwendet die PROC CAS-Prozedur und ihre Aktion `addCaslib`, um eine neue CASLIB zu definieren. Diese CASLIB, namens 'datalib', ist so konfiguriert, dass sie sich mit einer ODBC-Datenquelle verbindet, wobei die durch die Makrovariablen (Benutzername, Passwort, Datenbank usw.) angegebenen Parameter verwendet werden. Dies ermöglicht CAS den Zugriff auf externe Datenbanktabellen über diese CASLIB.
Erklärung : Dieser Block definiert einen LIBNAME 'caslib', um auf die zuvor erstellte CASLIB (`datalib`) zu verweisen und sie der aktiven CAS-Sitzung zuzuordnen. Anschließend wird ein DATA STEP verwendet, um eine neue In-Memory-Tabelle namens 'COLUMNSAMPLE' innerhalb dieser CASLIB zu erstellen. Die Daten für diese Tabelle werden direkt über die `datalines`-Anweisungen bereitgestellt, wodurch eine zu analysierende Tabelle simuliert wird.
Kopiert!
/* Create in-memory tables in CAS using CAS Libname engine */
libname caslib cas sessref=&cas_session tag="";
data caslib.COLUMNSAMPLE;
input FLIGHT $3. +5 DATES $7. +3 DEPART $5. +2 ORIG $3.
+3 DEST $3. +7 MILES +6 BOARDED +6 CAPACITY;
datalines;
114 01MAR98 7:10 LGA LAX 2475 172 210
202 01MAR98 10:43 LGA ORD 740 151 210
219 01MAR98 9:31 LGA LON 3442 198 250
622 01MAR98 12:19 LGA FRA 3857 207 250
132 01MAR98 15:35 LGA YYZ 366 115 178
271 01MAR98 13:17 LGA PAR 3635 138 250
302 01MAR98 20:22 LGA WAS 229 105 180
114 02MAR98 7:10 LGA LAX 2475 119 210
202 02MAR98 10:43 LGA ORD 740 120 210
219 02MAR98 9:31 LGA LON 3442 147 250
622 02MAR98 12:19 LGA FRA 3857 176 250
132 02MAR98 15:35 LGA YYZ 366 106 178
;
run;
1
/* Create in-memory tables in CAS using CAS Libname engine */
Erklärung : Dieses Beispiel verwendet die CAS-Aktion `table.columnInfo`, um detaillierte Informationen zu allen Spalten der Tabelle 'COLUMNSAMPLE' abzurufen, die sich in der CASLIB 'datalib' befindet. Diese Aktion liefert Metadaten wie Spaltenname, Typ, Länge usw.
Erklärung : Ähnlich wie im vorherigen Block demonstriert dieses Beispiel, wie die zurückgegebenen Informationen auf eine Untermenge spezifischer Spalten ('FLIGHT', 'DATES', 'BOARDED', 'CAPACITY') beschränkt werden können, indem der Parameter `vars` der Aktion `table.columnInfo` verwendet wird. Dies ist nützlich für gezielte Analysen.
Kopiert!
/*Proc cas columninfo action with specified vars variable */
proc cas;
table.columnInfo /
table={name="COLUMNSAMPLE",
caslib = "&caslib_alias"
vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
run;
quit;
1
/*Proc cas columninfo action with specified vars variable */
2
PROC CAS;
3
TABLE.columnInfo /
4
TABLE={name="COLUMNSAMPLE",
5
caslib = "&caslib_alias"
6
vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
7
RUN;
8
QUIT;
6 Codeblock
PROC CAS (table.columnInfo action)
Erklärung : Dieses Beispiel zeigt eine alternative Methode zur Angabe der interessierenden Spalten. Anstatt den Parameter `vars` innerhalb der Option `table` zu verwenden, wird der Parameter `inputs` direkt unter der Aktion `table.columnInfo` verwendet, wobei eine Liste von Dictionaries übergeben wird, in der jedes Dictionary den Namen einer Variablen ('FLIGHT', 'BOARDED') angibt.
Kopiert!
/*Proc cas columninfo action alternative method of specifying variables to display*/
proc cas;
table.columnInfo /
inputs = {{name="FLIGHT"},{name="BOARDED"}}
table={name = "COLUMNSAMPLE",
caslib = "&caslib_alias"};
run;
quit;
1
/*Proc cas columninfo action alternative method of specifying variables to display*/
2
PROC CAS;
3
TABLE.columnInfo /
4
inputs = {{name="FLIGHT"},{name="BOARDED"}}
5
TABLE={name = "COLUMNSAMPLE",
6
caslib = "&caslib_alias"};
7
RUN;
8
QUIT;
7 Codeblock
CAS Session Termination
Erklärung : Dieser Befehl beendet die zuvor eingerichtete CAS-Sitzung und gibt die zugehörigen Ressourcen frei. Es ist eine gute Praxis, CAS-Sitzungen nach Gebrauch immer zu beenden.
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.
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.