Publié le :
ETL CREATION_INTERNE

Chargement en masse de données vers Snowflake via SAS/ACCESS

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script initialise une macro globale `bl_internal_stage` pour configurer le mode de chargement en masse dans Snowflake. Il supprime ensuite une table cible existante (`mydblib.SNBLKTAB`) pour assurer une exécution propre. Un dataset SAS© temporaire (`work.SNBLKDAT`) est créé avec des données d'exemple. Enfin, une nouvelle table Snowflake est créée via `PROC SQL` en utilisant le dataset temporaire comme source, activant l'option `BULKLOAD=YES` et configurant le 'stage' interne. Le script se termine par une `PROC PRINT` pour afficher le contenu de la table nouvellement chargée dans Snowflake, vérifiant ainsi le succès de l'opération.
Analyse des données

Type : CREATION_INTERNE


Les données source `work.SNBLKDAT` sont créées directement et intégralement dans le script via un `DATA STEP` utilisant des données inline (`cards;`).

1 Bloc de code
MACRO GLOBAL
Explication :
Ce bloc définit et initialise une macro globale nommée `bl_internal_stage`. Cette macro est destinée à spécifier le type de 'stage' interne (par exemple, 'user', 'table', ou un 'internal stage' spécifique) à utiliser par Snowflake lors de l'opération de chargement en masse via SAS/ACCESS. L'initialisation vide permet une configuration ultérieure.
Copié !
1%GLOBAL bl_internal_stage;
2%let bl_internal_stage =;
3 
2 Bloc de code
PROC DELETE
Explication :
La `PROC DELETE` est utilisée pour supprimer de manière préventive la table `SNBLKTAB` de la bibliothèque `mydblib` (qui représente la connexion à Snowflake). Cela garantit que chaque exécution du script commence avec une ardoise propre, évitant des erreurs dues à l'existence préalable de la table.
Copié !
1PROC DELETE DATA=mydblib.SNBLKTAB; RUN;
3 Bloc de code
DATA STEP Data
Explication :
Ce `DATA STEP` crée un dataset SAS temporaire nommé `SNBLKDAT` dans la bibliothèque `work`. Il définit les variables `name`, `age`, `sex`, et `bdate`, puis peuple le dataset avec des données d'exemple directement incluses via l'instruction `cards;`. Ce dataset servira de source pour le chargement en masse vers Snowflake.
Copié !
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 Bloc de code
PROC SQL
Explication :
La `PROC SQL` est utilisée ici pour créer une nouvelle table `SNBLKTAB` dans la base de données Snowflake (via la bibliothèque `mydblib`). La clause `BULKLOAD=YES` active la fonctionnalité de chargement en masse de SAS/ACCESS, optimisant le transfert de données. L'option `BL_INTERNAL_STAGE=&bl_internal_stage` permet de spécifier le 'stage' interne de Snowflake en utilisant la macro globale définie précédemment. La table est peuplée par une sélection complète (`select *`) du dataset SAS temporaire `work.SNBLKDAT`.
Copié !
1PROC SQL;
2create TABLE mydblib.SNBLKTAB (
3 BULKLOAD=YES
4 BL_INTERNAL_STAGE=&bl_internal_stage
5) as select * from work.SNBLKDAT;
6QUIT;
5 Bloc de code
PROC PRINT
Explication :
Ce bloc utilise `PROC PRINT` pour afficher le contenu de la table `SNBLKTAB` située dans la bibliothèque `mydblib` (la table Snowflake). Le format `date7.` est appliqué à la variable `bdate` pour une meilleure lisibilité. Un titre est également ajouté à la sortie. Cette étape sert à vérifier visuellement que les données ont été correctement chargées dans Snowflake.
Copié !
1PROC PRINT DATA=mydblib.SNBLKTAB;
2 FORMAT bdate date7.;
3title 'proc print of table';
4RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : 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