/****************************************************************************** * Programme : Greenplum Data Connector * Reference : GREENP0B7B * Source : https://www.wearecas.eu/en/sampleCode/GREENP0B7B ******************************************************************************/ /* --- BLOC 1 --- */ /* Remplacez les valeurs fictives par vos informations de connexion Greenplum */ caslib greenplumcaslib_basic datasource=( srctype='greenplum', server='votre_serveur_greenplum.com', port=5432, database='votre_bdd_greenplum', username='votre_utilisateur', password='votre_motdepasse', schema='public' ); /* Vérifier que la caslib a été ajoutée */ proc cas; list caslibs; quit; /* --- BLOC 2 --- */ /* Créer une table CAS factice pour simuler des données Greenplum (si non existantes) */ data casuser.myGPdata; input ID Name $ Value; datalines; 1 John 100 2 Jane 150 3 Mike 200 4 Sarah 120 ; run; /* Définir une caslib Greenplum (assumant qu'elle est déjà définie et configurée comme dans l'Exemple 1) */ /* Remplacez les valeurs fictives par vos informations de connexion Greenplum */ caslib greenplumcaslib datasource=( srctype='greenplum', server='votre_serveur_greenplum.com', port=5432, database='votre_bdd_greenplum', username='votre_utilisateur', password='votre_motdepasse', schema='public' ); /* Utiliser PROC CASUTIL pour charger la table 'myGPdata' (simulant une table Greenplum) dans 'casuser' */ proc casutil; load casdata='myGPdata' incaslib='greenplumcaslib' outcaslib='casuser' casout='myGPdata_cas' promote; quit; /* Vérifier le chargement et le contenu de la table CAS */ proc cas; table.tableInfo caslib='casuser' table='myGPdata_cas'; table.fetch caslib='casuser' table='myGPdata_cas' sastableonly=true; quit; /* --- BLOC 3 --- */ /* Créer une table CAS factice pour simuler des données Greenplum */ data casuser.greenplum_sales; input OrderID Product $ Quantity Price; datalines; 101 A 10 25.50 102 B 5 10.00 103 A 12 25.50 104 C 8 50.25 105 B 7 10.00 ; run; /* Supposons que greenplumcaslib est déjà définie */ /* Simuler un chargement depuis Greenplum avec filtrage et sélection/renommage de colonnes */ proc casutil; load casdata='greenplum_sales' incaslib='greenplumcaslib' outcaslib='casuser' casout='filtered_greenplum_data' promote where='Quantity > 8' /* Filtrage des données dès la source Greenplum */ importoptions=( columns=( {name='OrderID', rename='CommandeID', type='double'}, {name='Product', rename='Produit', type='varchar'} ) ); quit; /* Vérifier le chargement et les transformations */ proc print data=casuser.filtered_greenplum_data; run; /* --- BLOC 4 --- */ /* Créer une table CAS factice pour simuler des données Greenplum */ data casuser.greenplum_inventory; input Item $ Stock_Level Location $; datalines; Laptop 50 WarehouseA Mouse 200 WarehouseB Keyboard 120 WarehouseA Monitor 75 WarehouseC ; run; /* Définir une caslib Greenplum (assumant qu'elle est déjà définie et configurée) */ /* Remplacez les valeurs fictives par vos informations de connexion Greenplum */ caslib greenplumcaslib datasource=( srctype='greenplum', server='votre_serveur_greenplum.com', port=5432, database='votre_bdd_greenplum', username='votre_utilisateur', password='votre_motdepasse', schema='public' ); /* Utiliser l'action 'table.fetch' pour lire directement depuis la source Greenplum via la caslib */ proc cas; session casauto; table.fetch caslib='greenplumcaslib' table='greenplum_inventory' /* Simule une table Greenplum */ where='Stock_Level < 100' to='limited_stock_items'; /* Afficher le résultat de l'action CAS */ table.contents caslib='casuser' table='limited_stock_items'; table.fetch caslib='casuser' table='limited_stock_items' sastableonly=true; quit;