Veröffentlicht am :
ETL CREATION_INTERNE

Massenladen von Daten (Bulkload)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Definition und Initialisierung globaler Makros für Port und Host, die für den Bulkload-Mechanismus erforderlich sind. Anschließend löscht es die Zieltabellen ('mydblib.testblkld1' und 'mydblib.testblkld2'), falls diese existieren, um eine saubere Testumgebung zu gewährleisten. Ein Quelldatensatz ('work.testblkld') wird intern mithilfe eines DATA-Schritts und integrierten Daten ('cards;') erstellt. Schließlich führt das Skript zwei Massenladevorgänge durch: den ersten über eine CREATE TABLE-Anweisung von PROC SQL und den zweiten über einen DATA-Schritt SET, wobei die Bulkload-Optionen wie Port, Host, das 'gpfdist'-Protokoll und das 'CSV'-Format für den ersten Fall angegeben werden.
Datenanalyse

Type : CREATION_INTERNE


Die für das Massenladen verwendeten Daten werden direkt im Skript über einen DATA-Schritt mit der Anweisung 'cards;' erstellt und bilden den Datensatz 'work.testblkld'.

1 Codeblock
MACRO GLOBAL
Erklärung :
Dieser Block definiert und initialisiert zwei globale Makros, `PORT` und `HOST`, die konfigurierbare Parameter für das Ziel des Massenladens (Bulkload) sind. Ihr Wert muss vom Benutzer vor der Ausführung eingegeben werden.
Kopiert!
1 /* CREATE GLOBAL MACROS FOR BULKLOAD */
2 
3 %GLOBAL PORT; /* Port for Hawq bulk loader */
4 %GLOBAL HOST; /* Client box for Hawq bulk load */
5 
6 /* ASSIGN GLOBAL MACRO VALUES FOR BULKLOAD */
7 
8 %let PORT =;
9 %let HOST =;
2 Codeblock
PROC DELETE
Erklärung :
Diese beiden `PROC DELETE` werden verwendet, um die Umgebung zu bereinigen, indem die Tabellen 'testblkld1' und 'testblkld2' aus der Bibliothek 'mydblib' entfernt werden, bevor neue Ladevorgänge durchgeführt werden. Dies stellt sicher, dass jede Skriptausführung von einem bekannten Zustand ausgeht.
Kopiert!
1 
2PROC DELETE
3DATA=mydblib.testblkld1;
4 
5RUN;
6PROC DELETE
7DATA=mydblib.testblkld2;
8 
9RUN;
10 
3 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt einen temporären Datensatz namens 'work.testblkld'. Die Daten werden inline über die Anweisung `cards;` bereitgestellt, wodurch die Variablen `name`, `age`, `sex` und `bdate` definiert werden. Dieser Datensatz dient als Quelle für die nachfolgenden Massenladevorgänge.
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;
4 Codeblock
PROC SQL
Erklärung :
Dieser Block verwendet `PROC SQL`, um eine Tabelle namens 'testblkld1' in der Bibliothek 'mydblib' zu erstellen. Die Option `BULKLOAD=YES` aktiviert das Massenladen. Die Optionen `BL_PORT`, `BL_HOST`, `BL_PROTOCOL` (auf 'gpfdist' gesetzt) und `bl_format` ('CSV') konfigurieren die Details der Datenübertragung. Die Daten werden aus 'work.testblkld' ausgewählt.
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;
5 Codeblock
DATA STEP
Erklärung :
Dieser DATA-Schritt führt ebenfalls ein Massenladen in eine neue Tabelle 'testblkld2' in der Bibliothek 'mydblib' durch. Im Gegensatz zum vorherigen Beispiel werden die Bulkload-Optionen (`BULKLOAD`, `BL_PORT`, `BL_HOST`, `BL_PROTOCOL`) direkt in den Optionen des Zieldatensatzes angegeben. Die Datenquelle ist 'work.testblkld', die über die Anweisung `set` gelesen wird.
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