Veröffentlicht am :
ETL MIXTE

Laden von Daten mit CAS-Konnektor (Beispiel)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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!
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 
13Please refer to the connopts.xlsx file for specific connection requirements for each DBMS engine
14 
15Most datasources will require username, password, database, and schema/server
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=???????);
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!
1/* Connect to CAS using cashost and casport, optional in SAS Studio */
2/* options cashost="???????" casport=????; */
3 
4 
5/* Create a CAS Session */
6cas &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.
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;
4 Codeblock
DATA STEP Data
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.
Kopiert!
1/* Create sample load table in DBMS: using DBMS-specific Libname engine*/
2LIBNAME loadlib &srctype &CONNOPTS;
3 
4DATA loadlib.LOADSAMPLE;
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;
5 Codeblock
PROC CAS (Aktion loadtable)
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.
Kopiert!
1/* Proc cas loadtable action: loads entire table*/
2PROC CAS;
3 SESSION &cas_session;
4 ACTION loadtable
5 casout={name="SAMDATLOAD" replace=true}
6 caslib="&caslib_alias"
7 path="LOADSAMPLE";
8RUN;
9QUIT;
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!
1/* Proc cas loadtable action with where parameter: subsets the input data */
2PROC 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";
9RUN;
10QUIT;
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!
1/* Proc cas loadtable action with vars parameter: specifies variables to load */
2PROC 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";
9RUN;
10QUIT;
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!
1/* Verify loadtable using caslib libref with CAS Libname engine to print in-memory tables*/
2LIBNAME caslib cas sessref=&cas_session tag="";
3PROC PRINT DATA=caslib.SAMDATLOAD;
4RUN;
5PROC PRINT DATA=caslib.SAMDATLOADWHERE;
6RUN;
7PROC PRINT DATA=caslib.SAMDATLOADVARS;
8RUN;
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!
1/* Clean-up: Delete files from data source associated with caslib */
2PROC CAS;
3 SESSION &cas_session;
4 ACTION deleteSource
5 caslib="&caslib_alias"
6 SOURCE="LOADSAMPLE"
7 ;
8RUN;
9QUIT;
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!
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 BEISPIELBIBLIOTHEK