Veröffentlicht am :

Spalteninformationen über ODBC Data Connector

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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!
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 
10Edit the below variables with the required DBMS-specific conection options
11Also, specify such variables within the CONNOPS string, as this will be used for the other sample programs
12 
13Most datasources will require username, password, database, and schema/server
14Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
15 
16BigQuery: requires protject and cred_path parameters
17Hadoop: requires hadoopJarPath, hadoopConfigDir, and dtm parameters
18Impala: requires port and conopts parameters
19JDBC: requires url, class, and classpath parameters
20Salesforce: requires authendpoint and catalog parameters
21SAP Hana: requires instance and tabletype parameters
22Teradata: requires dataTransferMode parameter
23Oracle, 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 */
41cas &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.
Kopiert!
1PROC CAS;
2SESSION &cas_session;
3ACTION addCaslib caslib="&caslib_alias"
4 datasource={ srctype="&srctype",
5 user="&username",
6 pass="&password",
7 database="&database",
8 schema="&schema",
9 catalog="*"};
10RUN;
11QUIT;
3 Codeblock
DATA STEP Data
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!
1/* Create in-memory tables in CAS using CAS Libname engine */
2LIBNAME caslib cas sessref=&cas_session tag="";
3 
4DATA caslib.COLUMNSAMPLE;
5 INPUT FLIGHT $3. +5 DATES $7. +3 DEPART $5. +2 ORIG $3.
6 +3 DEST $3. +7 MILES +6 BOARDED +6 CAPACITY;
7 DATALINES;
8114 01MAR98 7:10 LGA LAX 2475 172 210
9202 01MAR98 10:43 LGA ORD 740 151 210
10219 01MAR98 9:31 LGA LON 3442 198 250
11622 01MAR98 12:19 LGA FRA 3857 207 250
12132 01MAR98 15:35 LGA YYZ 366 115 178
13271 01MAR98 13:17 LGA PAR 3635 138 250
14302 01MAR98 20:22 LGA WAS 229 105 180
15114 02MAR98 7:10 LGA LAX 2475 119 210
16202 02MAR98 10:43 LGA ORD 740 120 210
17219 02MAR98 9:31 LGA LON 3442 147 250
18622 02MAR98 12:19 LGA FRA 3857 176 250
19132 02MAR98 15:35 LGA YYZ 366 106 178
20;
21RUN;
4 Codeblock
PROC CAS (table.columnInfo action)
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.
Kopiert!
1/* Proc cas columninfo action */
2PROC CAS;
3 TABLE.columnInfo /
4 TABLE={name = "COLUMNSAMPLE",
5 caslib = "&caslib_alias"};
6RUN;
7QUIT;
5 Codeblock
PROC CAS (table.columnInfo action)
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!
1/*Proc cas columninfo action with specified vars variable */
2PROC CAS;
3 TABLE.columnInfo /
4 TABLE={name="COLUMNSAMPLE",
5 caslib = "&caslib_alias"
6 vars={"FLIGHT", "DATES", "BOARDED", "CAPACITY"}};
7RUN;
8QUIT;
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!
1/*Proc cas columninfo action alternative method of specifying variables to display*/
2PROC CAS;
3 TABLE.columnInfo /
4 inputs = {{name="FLIGHT"},{name="BOARDED"}}
5 TABLE={name = "COLUMNSAMPLE",
6 caslib = "&caslib_alias"};
7RUN;
8QUIT;
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!
1/* Remove CAS
2session */
3cas &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 SAMPLE LIBRARY