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!
/* CREATE GLOBAL MACROS FOR BULKLOAD */
%GLOBAL PORT; /* Port for Hawq bulk loader */
%GLOBAL HOST; /* Client box for Hawq bulk load */
/* ASSIGN GLOBAL MACRO VALUES FOR BULKLOAD */
%let PORT =;
%let HOST =;
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.
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!
data work.testblkld;
input name $ age sex $ bdate mmddyy.;
cards;
amy 3 f 030185
bill 12 m 121277
charlie 35 m 010253
david 19 m 101469
elinor 42 f 080845
pearl 78 f 051222
vera 96 f 101200
frank 24 m 092663
georgia 1 f 040687
henry 46 m 053042
joann 27 f 020461
buddy 66 m 101432
;
run;
1
DATA work.testblkld;
2
INPUT name $ age sex $ bdate mmddyy.;
3
CARDS;
4
amy 3 f 030185
5
bill 12 m 121277
6
charlie 35 m 010253
7
david 19 m 101469
8
elinor 42 f 080845
9
pearl 78 f 051222
10
vera 96 f 101200
11
frank 24 m 092663
12
georgia 1 f 040687
13
henry 46 m 053042
14
joann 27 f 020461
15
buddy 66 m 101432
16
;
17
RUN;
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!
proc sql;
create table mydblib.testblkld1
(BULKLOAD=YES
BL_PORT=&port
BL_HOST=&host
BL_PROTOCOL="gpfdist"
bl_format='CSV')
as select * from work.testblkld;
quit;
1
PROC SQL;
2
create 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;
9
QUIT;
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!
data mydblib.testblkld2 (
BULKLOAD=YES
BL_PORT=&port
BL_HOST=&host
BL_PROTOCOL="gpfdist"
);
set work.testblkld;
run;
1
DATA mydblib.testblkld2 (
2
BULKLOAD=YES
3
BL_PORT=&port
4
BL_HOST=&host
5
BL_PROTOCOL="gpfdist"
6
);
7
SET work.testblkld;
8
RUN;
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.