Publié le :
ETL CREATION_INTERNE

Chargement en masse de données (Bulkload)

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par définir et initialiser des macros globales pour le port et l'hôte nécessaires au mécanisme de bulkload. Ensuite, il supprime les tables de destination ('mydblib.testblkld1' et 'mydblib.testblkld2') si elles existent, afin de garantir un environnement de test propre. Un jeu de données source ('work.testblkld') est créé en interne à l'aide d'un DATA step et de données incluses ('cards;'). Finalement, le script effectue deux opérations de chargement en masse : la première via une instruction CREATE TABLE de PROC SQL, et la seconde via un DATA step SET, en spécifiant les options de bulkload telles que le port, l'hôte, le protocole 'gpfdist' et le format 'CSV' pour le premier cas.
Analyse des données

Type : CREATION_INTERNE


Les données utilisées pour le chargement en masse sont créées directement dans le script via un DATA step avec l'instruction 'cards;', formant le jeu de données 'work.testblkld'.

1 Bloc de code
MACRO GLOBAL
Explication :
Ce bloc définit et initialise deux macros globales, `PORT` et `HOST`, qui sont des paramètres configurables pour la destination du chargement en masse (bulkload). Leur valeur doit être renseignée par l'utilisateur avant exécution.
Copié !
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 Bloc de code
PROC DELETE
Explication :
Ces deux `PROC DELETE` sont utilisées pour nettoyer l'environnement en supprimant les tables 'testblkld1' et 'testblkld2' de la bibliothèque 'mydblib' avant de procéder à de nouvelles opérations de chargement. Cela garantit que chaque exécution du script part d'un état connu.
Copié !
1 
2PROC DELETE
3DATA=mydblib.testblkld1;
4 
5RUN;
6PROC DELETE
7DATA=mydblib.testblkld2;
8 
9RUN;
10 
3 Bloc de code
DATA STEP Data
Explication :
Ce DATA step crée un jeu de données temporaire nommé 'work.testblkld'. Les données sont fournies en ligne via l'instruction `cards;`, définissant les variables `name`, `age`, `sex` et `bdate`. Ce jeu de données servira de source pour les opérations de chargement en masse subséquentes.
Copié !
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 Bloc de code
PROC SQL
Explication :
Ce bloc utilise `PROC SQL` pour créer une table nommée 'testblkld1' dans la bibliothèque 'mydblib'. L'option `BULKLOAD=YES` active le chargement en masse. Les options `BL_PORT`, `BL_HOST`, `BL_PROTOCOL` (défini sur 'gpfdist') et `bl_format` ('CSV') configurent les détails du transfert de données. Les données sont sélectionnées depuis 'work.testblkld'.
Copié !
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 Bloc de code
DATA STEP
Explication :
Ce DATA step effectue également un chargement en masse vers une nouvelle table 'testblkld2' dans la bibliothèque 'mydblib'. Contrairement à l'exemple précédent, les options de bulkload (`BULKLOAD`, `BL_PORT`, `BL_HOST`, `BL_PROTOCOL`) sont spécifiées directement dans les options du jeu de données cible. La source des données est 'work.testblkld', lue via l'instruction `set`.
Copié !
1DATA mydblib.testblkld2 (
2 BULKLOAD=YES
3 BL_PORT=&port
4 BL_HOST=&host
5 BL_PROTOCOL="gpfdist"
6 );
7 SET work.testblkld;
8RUN;
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 : SAS SAMPLE LIBRARY