Le connecteur SAS/ACCESS pour Netezza ne se contente pas de déplacer des données ; il utilise le Parallel Data Transfer (si configuré). Contrairement à une connexion ODBC classique qui fait passer toutes les données par un seul "tuyau" (le nœud de contrôle), ce connecteur permet à chaque nœud de calcul de votre serveur CAS de communiquer directement avec les nœuds de données Netezza.
Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) ou SASHELP pour simuler les opérations. Les paramètres de connexion à Netezza sont fictifs et doivent être remplacés par des informations réelles pour une exécution en environnement de production.
| 1 | /* Établit une connexion basique à Netezza et charge une table */ |
| 2 | |
| 3 | /* Crée une CASLIB pour Netezza */ |
| 4 | CASLIB myNetezza LIBREF=netezza DATASOURCE=(DBCONNECTOPTS=( |
| 5 | SERVER='mon_serveur_netezza.com' |
| 6 | PORT=5480 |
| 7 | DATABASE='ma_base_netezza' |
| 8 | UID='utilisateur' |
| 9 | PWD='motdepasse' |
| 10 | SCHEMA='mon_schema' |
| 11 | )) SESSION=CAS; |
| 12 | |
| 13 | /* Simule une petite table SAS en mémoire CAS */ |
| 14 | DATA casuser.local_data; |
| 15 | INPUT ID $ Value; |
| 16 | DATALINES; |
| 17 | A 10 |
| 18 | B 20 |
| 19 | C 30 |
| 20 | ; |
| 21 | RUN; |
| 22 | |
| 23 | /* Charge une table depuis Netezza dans CAS (remplacez 'ma_table_netezza' par le nom réel) */ |
| 24 | PROC CASUTIL; |
| 25 | LOAD CASDATA="ma_table_netezza" INCASLIB="myNetezza" OUTCASLIB="casuser" PROMOTE; |
| 26 | RUN; |
| 27 | |
| 28 | /* Vérifie que la table est chargée en mémoire CAS */ |
| 29 | PROC CASSESSION; |
| 30 | list tables; |
| 31 | QUIT; |
| 32 | |
| 33 | /* Nettoyage : supprimer la table CAS et la CASLIB */ |
| 34 | /* |
| 35 | PROC CASUTIL; |
| 36 | DROP TABLE casuser.ma_table_netezza; |
| 37 | RUN; |
| 38 | CASLIB _ALL_ PURGE; |
| 39 | */ |

| 1 | /* Charge une table Netezza dans CAS avec sélection de colonnes et filtrage */ |
| 2 | |
| 3 | /* Assurez-vous que la CASLIB 'myNetezza' de l'exemple 1 est définie ou définissez-la ici */ |
| 4 | CASLIB myNetezza LIBREF=netezza DATASOURCE=(DBCONNECTOPTS=( |
| 5 | SERVER='mon_serveur_netezza.com' |
| 6 | PORT=5480 |
| 7 | DATABASE='ma_base_netezza' |
| 8 | UID='utilisateur' |
| 9 | PWD='motdepasse' |
| 10 | SCHEMA='mon_schema' |
| 11 | )) SESSION=CAS; |
| 12 | |
| 13 | /* Charge une table de Netezza en sélectionnant des colonnes et en appliquant un filtre */ |
| 14 | PROC CASUTIL; |
| 15 | LOAD CASDATA="table_ventes_netezza" INCASLIB="myNetezza" OUTCASLIB="casuser" PROMOTE |
| 16 | IMPORTOPTIONS=(SET=(SELECT="ProduitID" "Quantite" "PrixUnitaire") |
| 17 | WHERE="Quantite > 100"); |
| 18 | RUN; |
| 19 | |
| 20 | /* Affiche les premières lignes de la table chargée */ |
| 21 | PROC CAS; |
| 22 | FEDSQL exec_sql_code='SELECT * FROM casuser.table_ventes_netezza LIMIT 5;'; |
| 23 | QUIT; |
| 24 | |
| 25 | /* Nettoyage : supprimer la table CAS */ |
| 26 | /* |
| 27 | PROC CASUTIL; |
| 28 | DROP TABLE casuser.table_ventes_netezza; |
| 29 | RUN; |
| 30 | */ |

| 1 | /* Crée une table CAS et l'écrit dans Netezza */ |
| 2 | |
| 3 | /* Assurez-vous que la CASLIB 'myNetezza' est définie */ |
| 4 | CASLIB myNetezza LIBREF=netezza DATASOURCE=(DBCONNECTOPTS=( |
| 5 | SERVER='mon_serveur_netezza.com' |
| 6 | PORT=5480 |
| 7 | DATABASE='ma_base_netezza' |
| 8 | UID='utilisateur' |
| 9 | PWD='motdepasse' |
| 10 | SCHEMA='mon_schema' |
| 11 | )) SESSION=CAS; |
| 12 | |
| 13 | /* Crée une table CAS avec des données d'exemple */ |
| 14 | DATA casuser.nouvelles_donnees_cas; |
| 15 | INPUT ClientID $ Statut; |
| 16 | DATALINES; |
| 17 | C001 Actif |
| 18 | C002 Inactif |
| 19 | C003 Actif |
| 20 | ; |
| 21 | RUN; |
| 22 | |
| 23 | /* Écrit la table CAS vers Netezza */ |
| 24 | PROC CASUTIL; |
| 25 | SAVE CASDATA="nouvelles_donnees_cas" OUTCASLIB="myNetezza" REPLACE; |
| 26 | RUN; |
| 27 | |
| 28 | /* Affiche un message de confirmation (hypothétique) */ |
| 29 | /* (Dans un vrai environnement, vous vérifieriez dans Netezza directement) */ |
| 30 | %PUT %STR(INFO: La TABLE 'nouvelles_donnees_cas' a été sauvegardée dans Netezza.); |
| 31 | |
| 32 | /* Nettoyage : supprimer la table CAS */ |
| 33 | /* |
| 34 | PROC CASUTIL; |
| 35 | DROP TABLE casuser.nouvelles_donnees_cas; |
| 36 | RUN; |
| 37 | */ |

| 1 | /* Charge des données de Netezza, effectue une agrégation en CAS, puis sauvegarde les résultats dans Netezza */ |
| 2 | |
| 3 | /* Assurez-vous que la CASLIB 'myNetezza' est définie */ |
| 4 | CASLIB myNetezza LIBREF=netezza DATASOURCE=(DBCONNECTOPTS=( |
| 5 | SERVER='mon_serveur_netezza.com' |
| 6 | PORT=5480 |
| 7 | DATABASE='ma_base_netezza' |
| 8 | UID='utilisateur' |
| 9 | PWD='motdepasse' |
| 10 | SCHEMA='mon_schema' |
| 11 | )) SESSION=CAS; |
| 12 | |
| 13 | /* Simule une table de données 'transactions' en CAS */ |
| 14 | DATA casuser.transactions; |
| 15 | INPUT Categorie $ Montant; |
| 16 | DATALINES; |
| 17 | Alimentation 150 |
| 18 | Vêtements 200 |
| 19 | Alimentation 50 |
| 20 | Électronique 1000 |
| 21 | Vêtements 300 |
| 22 | ; |
| 23 | RUN; |
| 24 | |
| 25 | /* Agrège les données en CAS (par exemple, somme des montants par catégorie) */ |
| 26 | PROC CAS; |
| 27 | FEDSQL exec_sql_code='CREATE TABLE casuser.somme_par_categorie AS |
| 28 | SELECT Categorie, SUM(Montant) AS TotalMontant |
| 29 | FROM casuser.transactions |
| 30 | GROUP BY Categorie;'; |
| 31 | QUIT; |
| 32 | |
| 33 | /* Sauvegarde la table agrégée dans Netezza */ |
| 34 | PROC CASUTIL; |
| 35 | SAVE CASDATA="somme_par_categorie" OUTCASLIB="myNetezza" REPLACE; |
| 36 | RUN; |
| 37 | |
| 38 | %PUT %STR(INFO: La TABLE agrégée 'somme_par_categorie' a été sauvegardée dans Netezza.); |
| 39 | |
| 40 | /* Nettoyage : supprimer les tables CAS */ |
| 41 | /* |
| 42 | PROC CASUTIL; |
| 43 | DROP TABLE casuser.transactions; |
| 44 | DROP TABLE casuser.somme_par_categorie; |
| 45 | RUN; |
| 46 | */ |

FedSQL est une implémentation propriétaire de SAS de la norme ANSI SQL:1999, offrant un accès évo...
Ce document explique comment les moteurs SAS gèrent l'accès et le traitement des fichiers de donn...
Ce document décrit les bibliothèques SAS par défaut (Work, User, Sashelp, Sasuser) fournies par S...
Ce document décrit les caractéristiques des moteurs SAS, incluant un résumé des moteurs courammen...