Publié le :
Accès aux données CREATION_INTERNE

Connecteur de données Greenplum

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce connecteur de données facilite l'intégration des données stockées dans une base de données Greenplum avec l'environnement de traitement en mémoire de SAS© Viya. Il supporte divers types de données Greenplum, les convertissant en types de données CAS correspondants. La configuration implique la définition d'une 'caslib' qui spécifie les détails de connexion à la base de données, y compris le type de source, le serveur, les identifiants, la base de données et le schéma. Les opérations de chargement et de déchargement de données peuvent être effectuées via des instructions CASLIB ou des procédures telles que PROC CASUTIL. Il est crucial de respecter la casse des noms de tables et d'identifiants tels qu'ils sont définis dans Greenplum.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) pour simuler une table Greenplum ou des données SASHELP, et des paramètres de connexion génériques. Les exemples sont autonomes.

1 Bloc de code
CASLIB
Explication :
Cet exemple montre la manière la plus simple d'établir une connexion entre SAS Cloud Analytic Services (CAS) et une base de données Greenplum. La déclaration `CASLIB` est utilisée pour définir une bibliothèque CAS (`greenplumcaslib_basic`) qui pointe vers la source de données Greenplum. Les options `srctype`, `server`, `port`, `database`, `username`, `password` et `schema` sont essentielles pour spécifier les détails de connexion. Une fois la caslib définie, la procédure `proc cas; list caslibs; quit;` permet de vérifier sa présence.
Copié !
1/* Remplacez les valeurs fictives par vos informations de connexion Greenplum */
2caslib greenplumcaslib_basic
3 datasource=(
4 srctype='greenplum',
5 server='votre_serveur_greenplum.com',
6 port=5432,
7 database='votre_bdd_greenplum',
8 username='votre_utilisateur',
9 password='votre_motdepasse',
10 schema='public'
11 );
12 
13/* Vérifier que la caslib a été ajoutée */
14PROC CAS;
15 list caslibs;
16QUIT;
2 Bloc de code
PROC CASUTIL Data
Explication :
Cet exemple illustre le chargement de données depuis Greenplum (simulées ici par `casuser.myGPdata` pour l'autonomie de l'exemple) vers une table en mémoire CAS en utilisant `PROC CASUTIL`. La sous-commande `LOAD` spécifie la table source (`casdata`), la caslib source (`incaslib`), la caslib de destination (`outcaslib`) et le nom de la nouvelle table CAS (`casout`). L'option `promote` rend la table visible à toutes les sessions. Les commandes `table.tableInfo` et `table.fetch` sont ensuite utilisées pour vérifier que la table a bien été chargée et pour afficher ses premières lignes.
Copié !
1/* Créer une table CAS factice pour simuler des données Greenplum (si non existantes) */
2DATA casuser.myGPdata;
3 INPUT ID Name $ Value;
4 DATALINES;
5 1 John 100
6 2 Jane 150
7 3 Mike 200
8 4 Sarah 120
9 ;
10RUN;
11 
12/* Définir une caslib Greenplum (assumant qu'elle est déjà définie et configurée comme dans l'Exemple 1) */
13/* Remplacez les valeurs fictives par vos informations de connexion Greenplum */
14caslib greenplumcaslib
15 datasource=(
16 srctype='greenplum',
17 server='votre_serveur_greenplum.com',
18 port=5432,
19 database='votre_bdd_greenplum',
20 username='votre_utilisateur',
21 password='votre_motdepasse',
22 schema='public'
23 );
24 
25/* Utiliser PROC CASUTIL pour charger la table 'myGPdata' (simulant une table Greenplum) dans 'casuser' */
26PROC CASUTIL;
27 load casdata='myGPdata' incaslib='greenplumcaslib' outcaslib='casuser'
28 casout='myGPdata_cas' promote;
29QUIT;
30 
31/* Vérifier le chargement et le contenu de la table CAS */
32PROC CAS;
33 TABLE.tableInfo caslib='casuser' TABLE='myGPdata_cas';
34 TABLE.fetch caslib='casuser' TABLE='myGPdata_cas' sastableonly=true;
35QUIT;
3 Bloc de code
PROC CASUTIL Data
Explication :
Cet exemple démontre des fonctionnalités avancées de `PROC CASUTIL` pour le chargement de données. Il inclut un filtrage côté source (`where='Quantity > 8'`) pour réduire le volume de données transférées et des options d'importation (`importoptions`) pour renommer les colonnes (`OrderID` en `CommandeID`, `Product` en `Produit`) et spécifier leurs types (`double`, `varchar`) lors du chargement dans CAS. Ces optimisations améliorent l'efficacité et la pertinence des données dans l'environnement CAS. La procédure `PROC PRINT` est utilisée pour afficher le résultat du chargement filtré et transformé.
Copié !
1/* Créer une table CAS factice pour simuler des données Greenplum */
2DATA casuser.greenplum_sales;
3 INPUT OrderID Product $ Quantity Price;
4 DATALINES;
5 101 A 10 25.50
6 102 B 5 10.00
7 103 A 12 25.50
8 104 C 8 50.25
9 105 B 7 10.00
10 ;
11RUN;
12 
13/* Supposons que greenplumcaslib est déjà définie */
14/* Simuler un chargement depuis Greenplum avec filtrage et sélection/renommage de colonnes */
15PROC CASUTIL;
16 load casdata='greenplum_sales' incaslib='greenplumcaslib' outcaslib='casuser'
17 casout='filtered_greenplum_data' promote
18 where='Quantity > 8' /* Filtrage des données dès la source Greenplum */
19 importoptions=(
20 columns=(
21 {name='OrderID', rename='CommandeID', type='double'},
22 {name='Product', rename='Produit', type='varchar'}
23 )
24 );
25QUIT;
26 
27/* Vérifier le chargement et les transformations */
28PROC PRINT DATA=casuser.filtered_greenplum_data;
29RUN;
4 Bloc de code
CAS ACTION Data
Explication :
Cet exemple illustre l'utilisation directe d'une action CAS, spécifiquement `table.fetch`, pour interagir avec les données Greenplum sans passer par `PROC CASUTIL`. Il montre comment lire des données directement depuis la `greenplumcaslib` (simulant une table Greenplum appelée `greenplum_inventory`), appliquer une condition de filtrage (`where='Stock_Level < 100'`) et sauvegarder les résultats dans une nouvelle table CAS temporaire (`limited_stock_items`). Cette approche est typique des scénarios Viya où la manipulation des données est effectuée en mémoire distribuée sur le serveur CAS.
Copié !
1/* Créer une table CAS factice pour simuler des données Greenplum */
2DATA casuser.greenplum_inventory;
3 INPUT Item $ Stock_Level Location $;
4 DATALINES;
5 Laptop 50 WarehouseA
6 Mouse 200 WarehouseB
7 Keyboard 120 WarehouseA
8 Monitor 75 WarehouseC
9 ;
10RUN;
11 
12/* Définir une caslib Greenplum (assumant qu'elle est déjà définie et configurée) */
13/* Remplacez les valeurs fictives par vos informations de connexion Greenplum */
14caslib greenplumcaslib
15 datasource=(
16 srctype='greenplum',
17 server='votre_serveur_greenplum.com',
18 port=5432,
19 database='votre_bdd_greenplum',
20 username='votre_utilisateur',
21 password='votre_motdepasse',
22 schema='public'
23 );
24 
25/* Utiliser l'action 'table.fetch' pour lire directement depuis la source Greenplum via la caslib */
26PROC CAS;
27 SESSION casauto;
28 TABLE.fetch caslib='greenplumcaslib' TABLE='greenplum_inventory' /* Simule une table Greenplum */
29 where='Stock_Level < 100'
30 to='limited_stock_items';
31
32 /* Afficher le résultat de l'action CAS */
33 TABLE.contents caslib='casuser' TABLE='limited_stock_items';
34 TABLE.fetch caslib='casuser' TABLE='limited_stock_items' sastableonly=true;
35QUIT;
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 : Copyright © SAS Institute Inc. All Rights Reserved


Documentation liée : Accès aux données

Sujet / Mot-cléLien vers la ressource
DOC FedSQL fr/sampleCode/FEDSQLD493
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI88E2
DOC Bibliothèques SAS par Défaut fr/sampleCode/BIBLIOB755
DOC Fonctionnement des Moteurs avec les Fichiers fr/sampleCode/FONCTI81D4
DOC Caractéristiques des moteurs SAS fr/sampleCode/CARACTABC0
DOC Définitions des Moteurs SAS fr/sampleCode/DEFINI6352