Le script commence par une phase de nettoyage utilisant `PROC DELETE` pour supprimer d'éventuelles tables de test (`testblkld1`, `testblkld2`) dans la bibliothèque `mydblib`. Ensuite, un jeu de données de travail (`work.testblkld`) est créé en mémoire avec des données spécifiées directement dans le script (`cards`). Enfin, les données de `work.testblkld` sont chargées en masse dans la base de données Greenplum en utilisant deux approches distinctes : la première via une instruction `CREATE TABLE AS SELECT` dans `PROC SQL` avec les options `BULKLOAD` activées directement sur la table cible, et la seconde via une étape `DATA` qui utilise également les options `BULKLOAD` lors de la déclaration de la table cible `mydblib.testblkld2`.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données source `work.testblkld` est créé directement dans le script SAS via une étape `DATA` et l'instruction `cards;` pour définir les données en ligne. Les tables cibles `mydblib.testblkld1` et `mydblib.testblkld2` sont des tables externes dans une base de données Greenplum, mais les données source sont internes au script.
1 Bloc de code
PROC DELETE
Explication : Ces `PROC DELETE` sont utilisées pour supprimer les tables `testblkld1` et `testblkld2` de la bibliothèque `mydblib` si elles existent. Cela assure un environnement propre pour l'exécution du script et évite les erreurs de création de tables existantes. `mydblib` est une bibliothèque SAS/ACCESS connectée à une base de données externe.
Explication : Cette étape `DATA` crée un jeu de données temporaire nommé `work.testblkld`. Il contient quatre variables : `name` (caractère), `age` (numérique), `sex` (caractère) et `bdate` (numérique, formatée comme une date SAS à partir d'un format `mmddyy.`). Les données sont fournies en ligne via l'instruction `cards;`, ce qui signifie que le jeu de données est créé directement à partir des valeurs spécifiées dans le script.
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;
3 Bloc de code
PROC SQL
Explication : Ce bloc utilise `PROC SQL` pour créer une nouvelle table `testblkld1` dans la bibliothèque `mydblib` (qui représente la connexion à Greenplum). L'option `BULKLOAD=YES` active le chargement en masse. Les options `BL_PORT`, `BL_HOST`, et `BL_PROTOCOL="gpfdist"` sont des paramètres spécifiques pour la configuration du protocole GPFDIST de Greenplum, permettant un transfert de données optimisé. `bl_format='CSV'` spécifie le format des données envoyées. La table est créée en sélectionnant toutes les colonnes du jeu de données `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;
4 Bloc de code
DATA STEP
Explication : Ce bloc utilise une étape `DATA` pour créer la table `testblkld2` dans la bibliothèque `mydblib`. Comme dans l'exemple `PROC SQL`, les options `BULKLOAD=YES`, `BL_PORT`, `BL_HOST`, et `BL_PROTOCOL="gpfdist"` sont spécifiées directement sur l'instruction `DATA` pour la table cible, activant ainsi le chargement en masse vers Greenplum. L'instruction `set work.testblkld;` indique que les données à charger proviennent du jeu de données temporaire `work.testblkld` créé précédemment.
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.
Informations de Copyright : SAS SAMPLE LIBRARY, NAME: bulkload.sas, TITLE: Sample Programs, PRODUCT: SAS/ACCESS to Greenplum, SYSTEM: z/OS, UNIX, WINDOWS, REF: SAS/ACCESS 9 for Relational Databases: Reference
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.