Publicado el :
Acceso a datos CREATION_INTERNE

Conector de datos Netezza

Este código también está disponible en: Deutsch English Français
En espera de validación
Este conector ofrece una interfaz entre el entorno SAS© Viya y las fuentes de datos Netezza. Permite a los usuarios leer datos desde Netezza a tablas CAS, escribir tablas CAS en Netezza y ejecutar operaciones de procesamiento distribuido sobre estos datos. La integración se realiza a través de la biblioteca CAS (CASLIB) o los procedimientos CASUTIL, que proporcionan los mecanismos necesarios para especificar las opciones de conexión (servidor, puerto, base de datos, credenciales) y los parámetros de transferencia de datos. Admite diversos modos de transferencia para optimizar el rendimiento y la gestión de recursos al mover datos entre Netezza y CAS.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o SASHELP para simular las operaciones. Los parámetros de conexión a Netezza son ficticios y deben ser reemplazados por información real para su ejecución en un entorno de producción.

1 Bloque de código
CASLIB / PROC CASUTIL Data
Explicación :
Este ejemplo inicializa una biblioteca CAS (CASLIB) llamada 'myNetezza' que se conecta a una base de datos Netezza. Luego simula una tabla local para mostrar cómo se podrían preparar los datos. Finalmente, utiliza el procedimiento `PROC CASUTIL` con la acción `LOAD` para cargar una tabla existente de Netezza (nombrada 'ma_table_netezza' en el ejemplo) en una tabla CAS en memoria, haciéndola disponible para los análisis de SAS Viya. La opción `PROMOTE` hace que la tabla sea visible para todas las sesiones CAS.
¡Copiado!
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 Bloque de código
PROC CASUTIL
Explicación :
Este ejemplo ilustra la carga de una tabla Netezza en CAS utilizando opciones de importación avanzadas. Especifica las columnas a incluir ('ProduitID', 'Quantite', 'PrixUnitaire') y aplica una cláusula `WHERE` para filtrar los registros donde la 'Quantite' es mayor que 100. Esto permite cargar solo un subconjunto relevante de los datos, optimizando así el uso de la memoria de CAS y el rendimiento del análisis.
¡Copiado!
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 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo demuestra cómo crear una nueva tabla en la memoria de CAS y exportarla a la base de datos Netezza. Se utiliza el procedimiento `PROC CASUTIL` con la acción `SAVE`, especificando la CASLIB Netezza como destino. La opción `REPLACE` indica que si ya existe una tabla con el mismo nombre en Netezza, esta será reemplazada. Esto es útil para la sincronización o la persistencia de los resultados del análisis.
¡Copiado!
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 Bloque de código
PROC CAS / PROC CASUTIL Data
Explicación :
Este ejemplo ilustra un flujo de trabajo completo que involucra Netezza y CAS. Comienza con la creación de una CASLIB para Netezza, luego crea una tabla SAS en memoria CAS con datos de transacción simulados. A continuación, utiliza `PROC CAS` con `FEDSQL` para ejecutar una consulta SQL que agrega los montos por categoría, almacenando el resultado en una nueva tabla CAS. Finalmente, esta tabla agregada se guarda en la base de datos Netezza, demostrando así la capacidad de SAS Viya para realizar análisis en memoria sobre datos de Netezza y persistir los resultados modificados o agregados en la fuente original.
¡Copiado!
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*/
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.