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é !
/* 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 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.
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é !
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 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é !
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 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é !
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;
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.