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

Connecteur de données Netezza

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce connecteur offre une interface entre l'environnement SAS© Viya et les sources de données Netezza. Il permet aux utilisateurs de lire des données depuis Netezza dans des tables CAS, d'écrire des tables CAS dans Netezza, et d'exécuter des opérations de traitement distribué sur ces données. L'intégration s'effectue via la bibliothèque CAS (CASLIB) ou les procédures CASUTIL, qui fournissent les mécanismes nécessaires pour spécifier les options de connexion (serveur, port, base de données, informations d'identification) et les paramètres de transfert de données. Il supporte divers modes de transfert pour optimiser la performance et la gestion des ressources lors du déplacement des données entre Netezza et CAS.
Analyse des données

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 Bloc de code
CASLIB / PROC CASUTIL Data
Explication :
Cet exemple initialise une bibliothèque CAS (CASLIB) nommée 'myNetezza' qui se connecte à une base de données Netezza. Il simule ensuite une table locale pour montrer comment des données pourraient être préparées. Enfin, il utilise la procédure `PROC CASUTIL` avec l'action `LOAD` pour charger une table existante de Netezza (nommée 'ma_table_netezza' dans l'exemple) dans une table CAS en mémoire, la rendant disponible pour les analyses SAS Viya. L'option `PROMOTE` rend la table visible à toutes les sessions CAS.
Copié !
1/* Établit une connexion basique à Netezza et charge une table */
2 
3/* Crée une CASLIB pour Netezza */
4CASLIB 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 */
14DATA casuser.local_data;
15 INPUT ID $ Value;
16 DATALINES;
17 A 10
18 B 20
19 C 30
20 ;
21RUN;
22 
23/* Charge une table depuis Netezza dans CAS (remplacez 'ma_table_netezza' par le nom réel) */
24PROC CASUTIL;
25 LOAD CASDATA="ma_table_netezza" INCASLIB="myNetezza" OUTCASLIB="casuser" PROMOTE;
26RUN;
27 
28/* Vérifie que la table est chargée en mémoire CAS */
29PROC CASSESSION;
30 list tables;
31QUIT;
32 
33/* Nettoyage : supprimer la table CAS et la CASLIB */
34/*
35PROC CASUTIL;
36 DROP TABLE casuser.ma_table_netezza;
37RUN;
38CASLIB _ALL_ PURGE;
39*/
2 Bloc de code
PROC CASUTIL
Explication :
Cet exemple illustre le chargement d'une table Netezza dans CAS en utilisant des options d'importation avancées. Il spécifie les colonnes à inclure ('ProduitID', 'Quantite', 'PrixUnitaire') et applique une clause `WHERE` pour filtrer les enregistrements où la 'Quantite' est supérieure à 100. Cela permet de ne charger qu'un sous-ensemble pertinent des données, optimisant ainsi l'utilisation de la mémoire CAS et les performances d'analyse.
Copié !
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 */
4CASLIB 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 */
14PROC CASUTIL;
15 LOAD CASDATA="table_ventes_netezza" INCASLIB="myNetezza" OUTCASLIB="casuser" PROMOTE
16 IMPORTOPTIONS=(SET=(SELECT="ProduitID" "Quantite" "PrixUnitaire")
17 WHERE="Quantite > 100");
18RUN;
19 
20/* Affiche les premières lignes de la table chargée */
21PROC CAS;
22 FEDSQL exec_sql_code='SELECT * FROM casuser.table_ventes_netezza LIMIT 5;';
23QUIT;
24 
25/* Nettoyage : supprimer la table CAS */
26/*
27PROC CASUTIL;
28 DROP TABLE casuser.table_ventes_netezza;
29RUN;
30*/
3 Bloc de code
PROC CASUTIL Data
Explication :
Cet exemple démontre comment créer une nouvelle table en mémoire CAS et l'exporter vers la base de données Netezza. La procédure `PROC CASUTIL` avec l'action `SAVE` est utilisée, en spécifiant la CASLIB Netezza comme destination. L'option `REPLACE` indique que si une table du même nom existe déjà dans Netezza, elle sera remplacée. C'est utile pour la synchronisation ou la persistance des résultats d'analyse.
Copié !
1/* Crée une table CAS et l'écrit dans Netezza */
2 
3/* Assurez-vous que la CASLIB 'myNetezza' est définie */
4CASLIB 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 */
14DATA casuser.nouvelles_donnees_cas;
15 INPUT ClientID $ Statut;
16 DATALINES;
17 C001 Actif
18 C002 Inactif
19 C003 Actif
20 ;
21RUN;
22 
23/* Écrit la table CAS vers Netezza */
24PROC CASUTIL;
25 SAVE CASDATA="nouvelles_donnees_cas" OUTCASLIB="myNetezza" REPLACE;
26RUN;
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/*
34PROC CASUTIL;
35 DROP TABLE casuser.nouvelles_donnees_cas;
36RUN;
37*/
4 Bloc de code
PROC CAS / PROC CASUTIL Data
Explication :
Cet exemple illustre un workflow complet impliquant Netezza et CAS. Il commence par la création d'une CASLIB pour Netezza, puis crée une table SAS en mémoire CAS avec des données de transaction simulées. Ensuite, il utilise `PROC CAS` avec `FEDSQL` pour exécuter une requête SQL qui agrège les montants par catégorie, stockant le résultat dans une nouvelle table CAS. Enfin, cette table agrégée est sauvegardée dans la base de données Netezza, démontrant ainsi la capacité de SAS Viya à effectuer des analyses en mémoire sur des données Netezza et à persister les résultats modifiés ou agrégés dans la source originale.
Copié !
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 */
4CASLIB 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 */
14DATA 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 ;
23RUN;
24 
25/* Agrège les données en CAS (par exemple, somme des montants par catégorie) */
26PROC 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;';
31QUIT;
32 
33/* Sauvegarde la table agrégée dans Netezza */
34PROC CASUTIL;
35 SAVE CASDATA="somme_par_categorie" OUTCASLIB="myNetezza" REPLACE;
36RUN;
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/*
42PROC CASUTIL;
43 DROP TABLE casuser.transactions;
44 DROP TABLE casuser.somme_par_categorie;
45RUN;
46*/
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.

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