Veröffentlicht am :
ETL INTERNE_ERSTELLUNG

Massenladen (Bulkload) - SAS/ACCESS Greenplum Beispiel

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit einer Bereinigungsphase, bei der `PROC DELETE` verwendet wird, um mögliche Testtabellen (`testblkld1`, `testblkld2`) in der Bibliothek `mydblib` zu löschen. Anschließend wird ein Arbeitsdatensatz (`work.testblkld`) im Speicher mit direkt im Skript (`cards`) angegebenen Daten erstellt. Schließlich werden die Daten aus `work.testblkld` über zwei verschiedene Ansätze massenweise in die Greenplum-Datenbank geladen: der erste über eine `CREATE TABLE AS SELECT`-Anweisung in `PROC SQL` mit direkt auf der Zieltabelle aktivierten `BULKLOAD`-Optionen und der zweite über einen `DATA`-Schritt, der ebenfalls die `BULKLOAD`-Optionen bei der Deklaration der Zieltabelle `mydblib.testblkld2` verwendet.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Der Quell-Datensatz `work.testblkld` wird direkt im SAS-Skript über einen `DATA`-Schritt und die Anweisung `cards;` erstellt, um die Daten inline zu definieren. Die Zieltabellen `mydblib.testblkld1` und `mydblib.testblkld2` sind externe Tabellen in einer Greenplum-Datenbank, aber die Quelldaten sind intern im Skript.

1 Codeblock
PROC DELETE
Erklärung :
Diese `PROC DELETE` Anweisungen werden verwendet, um die Tabellen `testblkld1` und `testblkld2` aus der Bibliothek `mydblib` zu löschen, falls sie existieren. Dies stellt eine saubere Umgebung für die Skriptausführung sicher und vermeidet Fehler beim Erstellen bestehender Tabellen. `mydblib` ist eine SAS/ACCESS-Bibliothek, die mit einer externen Datenbank verbunden ist.
Kopiert!
1 
2PROC DELETE
3DATA=mydblib.testblkld1;
4 
5RUN;
6PROC DELETE
7DATA=mydblib.testblkld2;
8 
9RUN;
10 
2 Codeblock
DATA STEP Data
Erklärung :
Dieser `DATA`-Schritt erstellt einen temporären Datensatz namens `work.testblkld`. Er enthält vier Variablen: `name` (Zeichen), `age` (numerisch), `sex` (Zeichen) und `bdate` (numerisch, formatiert als SAS-Datum aus einem `mmddyy.`-Format). Die Daten werden inline über die Anweisung `cards;` bereitgestellt, was bedeutet, dass der Datensatz direkt aus den im Skript angegebenen Werten erstellt wird.
Kopiert!
1DATA work.testblkld;
2 INPUT name $ age sex $ bdate mmddyy.;
3 CARDS;
4amy 3 f 030185
5bill 12 m 121277
6charlie 35 m 010253
7david 19 m 101469
8elinor 42 f 080845
9pearl 78 f 051222
10vera 96 f 101200
11frank 24 m 092663
12georgia 1 f 040687
13henry 46 m 053042
14joann 27 f 020461
15buddy 66 m 101432
16;
17RUN;
3 Codeblock
PROC SQL
Erklärung :
Dieser Block verwendet `PROC SQL`, um eine neue Tabelle `testblkld1` in der Bibliothek `mydblib` (die die Verbindung zu Greenplum darstellt) zu erstellen. Die Option `BULKLOAD=YES` aktiviert das Massenladen. Die Optionen `BL_PORT`, `BL_HOST` und `BL_PROTOCOL="gpfdist"` sind spezifische Parameter für die Konfiguration des Greenplum GPFDIST-Protokolls, die eine optimierte Datenübertragung ermöglichen. `bl_format='CSV'` gibt das Format der gesendeten Daten an. Die Tabelle wird erstellt, indem alle Spalten aus dem Datensatz `work.testblkld` ausgewählt werden.
Kopiert!
1PROC SQL;
2create TABLE mydblib.testblkld1
3 (BULKLOAD=YES
4 BL_PORT=&port
5 BL_HOST=&host
6 BL_PROTOCOL="gpfdist"
7 bl_format='CSV')
8 as select * from work.testblkld;
9QUIT;
4 Codeblock
DATA STEP
Erklärung :
Dieser Block verwendet einen `DATA`-Schritt, um die Tabelle `testblkld2` in der Bibliothek `mydblib` zu erstellen. Wie im `PROC SQL`-Beispiel werden die Optionen `BULKLOAD=YES`, `BL_PORT`, `BL_HOST` und `BL_PROTOCOL="gpfdist"` direkt in der `DATA`-Anweisung für die Zieltabelle angegeben, wodurch das Massenladen nach Greenplum aktiviert wird. Die Anweisung `set work.testblkld;` zeigt an, dass die zu ladenden Daten aus dem zuvor erstellten temporären Datensatz `work.testblkld` stammen.
Kopiert!
1DATA mydblib.testblkld2 (
2 BULKLOAD=YES
3 BL_PORT=&port
4 BL_HOST=&host
5 BL_PROTOCOL="gpfdist"
6 );
7 SET work.testblkld;
8RUN;
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, NAME: bulkload.sas, TITLE: Sample Programs, PRODUCT: SAS/ACCESS to Greenplum, SYSTEM: z/OS, UNIX, WINDOWS, REF: SAS/ACCESS 9 for Relational Databases: Reference