Publicado el :
Acceso a datos CREATION_INTERNE

Conector de datos Greenplum

Este código también está disponible en: Deutsch English Français
En espera de validación
Este conector de datos facilita la integración de los datos almacenados en una base de datos Greenplum con el entorno de procesamiento en memoria de SAS© Viya. Soporta diversos tipos de datos Greenplum, convirtiéndolos en los tipos de datos CAS correspondientes. La configuración implica la definición de una 'caslib' que especifica los detalles de conexión a la base de datos, incluyendo el tipo de origen, el servidor, las credenciales, la base de datos y el esquema. Las operaciones de carga y descarga de datos pueden realizarse a través de instrucciones CASLIB o procedimientos como PROC CASUTIL. Es crucial respetar la distinción entre mayúsculas y minúsculas de los nombres de tablas e identificadores tal como están definidos en Greenplum.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) para simular una tabla Greenplum o datos SASHELP, y parámetros de conexión genéricos. Los ejemplos son autónomos.

1 Bloque de código
CASLIB
Explicación :
Este ejemplo muestra la forma más sencilla de establecer una conexión entre SAS Cloud Analytic Services (CAS) y una base de datos Greenplum. La declaración `CASLIB` se utiliza para definir una biblioteca CAS (`greenplumcaslib_basic`) que apunta a la fuente de datos Greenplum. Las opciones `srctype`, `server`, `port`, `database`, `username`, `password` y `schema` son esenciales para especificar los detalles de conexión. Una vez definida la caslib, el procedimiento `proc cas; list caslibs; quit;` permite verificar su presencia.
¡Copiado!
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 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo ilustra la carga de datos desde Greenplum (simulados aquí por `casuser.myGPdata` para la autonomía del ejemplo) a una tabla en memoria CAS utilizando `PROC CASUTIL`. El subcomando `LOAD` especifica la tabla de origen (`casdata`), la caslib de origen (`incaslib`), la caslib de destino (`outcaslib`) y el nombre de la nueva tabla CAS (`casout`). La opción `promote` hace que la tabla sea visible para todas las sesiones. Los comandos `table.tableInfo` y `table.fetch` se utilizan posteriormente para verificar que la tabla se ha cargado correctamente y para mostrar sus primeras filas.
¡Copiado!
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 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo demuestra funcionalidades avanzadas de `PROC CASUTIL` para la carga de datos. Incluye un filtrado del lado de la fuente (`where='Quantity > 8'`) para reducir el volumen de datos transferidos y opciones de importación (`importoptions`) para renombrar las columnas (`OrderID` a `CommandeID`, `Product` a `Produit`) y especificar sus tipos (`double`, `varchar`) durante la carga en CAS. Estas optimizaciones mejoran la eficiencia y la relevancia de los datos en el entorno CAS. El procedimiento `PROC PRINT` se utiliza para mostrar el resultado de la carga filtrada y transformada.
¡Copiado!
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 Bloque de código
CAS ACTION Data
Explicación :
Este ejemplo ilustra el uso directo de una acción CAS, específicamente `table.fetch`, para interactuar con los datos de Greenplum sin pasar por `PROC CASUTIL`. Muestra cómo leer datos directamente desde `greenplumcaslib` (simulando una tabla Greenplum llamada `greenplum_inventory`), aplicar una condición de filtrado (`where='Stock_Level < 100'`) y guardar los resultados en una nueva tabla CAS temporal (`limited_stock_items`). Este enfoque es típico de los escenarios de Viya donde la manipulación de datos se realiza en memoria distribuida en el servidor CAS.
¡Copiado!
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;
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.
Información de copyright : Copyright © SAS Institute Inc. All Rights Reserved