Veröffentlicht am :
ETL INTERNE_ERSTELLUNG

Massenladen von Daten nach Snowflake über SAS/ACCESS

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert ein globales Makro `bl_internal_stage`, um den Massenlader-Modus in Snowflake zu konfigurieren. Anschließend löscht es eine bestehende Zieltabelle (`mydblib.SNBLKTAB`), um eine saubere Ausführung zu gewährleisten. Ein temporäres SAS©-Dataset (`work.SNBLKDAT`) wird mit Beispieldaten erstellt. Schließlich wird eine neue Snowflake-Tabelle über `PROC SQL` erstellt, indem das temporäre Dataset als Quelle verwendet, die Option `BULKLOAD=YES` aktiviert und der interne 'stage' konfiguriert wird. Das Skript endet mit einem `PROC PRINT`, um den Inhalt der neu geladenen Tabelle in Snowflake anzuzeigen und so den Erfolg der Operation zu überprüfen.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Die Quelldaten `work.SNBLKDAT` werden direkt und vollständig im Skript über einen `DATA STEP` mit Inline-Daten (`cards;`) erstellt.

1 Codeblock
GLOBALES MAKRO
Erklärung :
Dieser Block definiert und initialisiert ein globales Makro namens `bl_internal_stage`. Dieses Makro dient dazu, den Typ des internen 'stage' (z.B. 'user', 'table' oder ein spezifischer 'internal stage') anzugeben, der von Snowflake während des Massenladevorgangs über SAS/ACCESS verwendet werden soll. Die leere Initialisierung ermöglicht eine spätere Konfiguration.
Kopiert!
1%GLOBAL bl_internal_stage;
2%let bl_internal_stage =;
3 
2 Codeblock
PROC DELETE
Erklärung :
`PROC DELETE` wird verwendet, um die Tabelle `SNBLKTAB` aus der Bibliothek `mydblib` (welche die Verbindung zu Snowflake darstellt) präventiv zu löschen. Dies stellt sicher, dass jede Ausführung des Skripts mit einer sauberen Basis beginnt und Fehler aufgrund einer bereits existierenden Tabelle vermieden werden.
Kopiert!
1PROC DELETE DATA=mydblib.SNBLKTAB; RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Dieser `DATA STEP` erstellt ein temporäres SAS-Dataset namens `SNBLKDAT` in der Bibliothek `work`. Er definiert die Variablen `name`, `age`, `sex` und `bdate` und füllt das Dataset anschließend mit Beispieldaten, die direkt über die `cards;`-Anweisung eingefügt werden. Dieses Dataset dient als Quelle für das Massenladen nach Snowflake.
Kopiert!
1DATA work.SNBLKDAT;
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 :
Die `PROC SQL` wird hier verwendet, um eine neue Tabelle `SNBLKTAB` in der Snowflake-Datenbank (über die Bibliothek `mydblib`) zu erstellen. Die Klausel `BULKLOAD=YES` aktiviert die Massenlader-Funktion von SAS/ACCESS und optimiert so die Datenübertragung. Die Option `BL_INTERNAL_STAGE=&bl_internal_stage` ermöglicht die Angabe des internen 'stage' von Snowflake unter Verwendung des zuvor definierten globalen Makros. Die Tabelle wird durch eine vollständige Auswahl (`select *`) des temporären SAS-Datasets `work.SNBLKDAT` gefüllt.
Kopiert!
1PROC SQL;
2create TABLE mydblib.SNBLKTAB (
3 BULKLOAD=YES
4 BL_INTERNAL_STAGE=&bl_internal_stage
5) as select * from work.SNBLKDAT;
6QUIT;
5 Codeblock
PROC PRINT
Erklärung :
Dieser Block verwendet `PROC PRINT`, um den Inhalt der Tabelle `SNBLKTAB` in der Bibliothek `mydblib` (die Snowflake-Tabelle) anzuzeigen. Das Format `date7.` wird auf die Variable `bdate` angewendet, um die Lesbarkeit zu verbessern. Ein Titel wird ebenfalls zur Ausgabe hinzugefügt. Dieser Schritt dient der visuellen Überprüfung, ob die Daten korrekt in Snowflake geladen wurden.
Kopiert!
1PROC PRINT DATA=mydblib.SNBLKTAB;
2 FORMAT bdate date7.;
3title 'proc print of table';
4RUN;
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 : S A S S A M P L E L I B R A R Y; NAME: bulkload.sas; TITLE: Sample Programs; PRODUCT: SAS/ACCESS to Snowflake