Publicado el :
ETL CREATION_INTERNE

Carga Masiva (Bulkload) - Ejemplo SAS/ACCESS Greenplum

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza con una fase de limpieza usando `PROC DELETE` para eliminar posibles tablas de prueba (`testblkld1`, `testblkld2`) en la librería `mydblib`. Luego, se crea un conjunto de datos de trabajo (`work.testblkld`) en memoria con datos especificados directamente en el script (`cards`). Finalmente, los datos de `work.testblkld` se cargan masivamente en la base de datos Greenplum usando dos enfoques distintos: el primero a través de una instrucción `CREATE TABLE AS SELECT` en `PROC SQL` con las opciones `BULKLOAD` activadas directamente en la tabla objetivo, y el segundo a través de un paso `DATA` que también utiliza las opciones `BULKLOAD` al declarar la tabla objetivo `mydblib.testblkld2`.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos fuente `work.testblkld` se crea directamente en el script SAS a través de un paso `DATA` y la instrucción `cards;` para definir los datos en línea. Las tablas objetivo `mydblib.testblkld1` y `mydblib.testblkld2` son tablas externas en una base de datos Greenplum, pero los datos fuente son internos al script.

1 Bloque de código
PROC DELETE
Explicación :
Estos `PROC DELETE` se utilizan para eliminar las tablas `testblkld1` y `testblkld2` de la librería `mydblib` si existen. Esto asegura un entorno limpio para la ejecución del script y evita errores de creación de tablas existentes. `mydblib` es una librería SAS/ACCESS conectada a una base de datos externa.
¡Copiado!
1 
2PROC DELETE
3DATA=mydblib.testblkld1;
4 
5RUN;
6PROC DELETE
7DATA=mydblib.testblkld2;
8 
9RUN;
10 
2 Bloque de código
DATA STEP Data
Explicación :
Este paso `DATA` crea un conjunto de datos temporal llamado `work.testblkld`. Contiene cuatro variables: `name` (carácter), `age` (numérico), `sex` (carácter) y `bdate` (numérico, formateado como una fecha SAS a partir de un formato `mmddyy.`). Los datos se proporcionan en línea a través de la instrucción `cards;`, lo que significa que el conjunto de datos se crea directamente a partir de los valores especificados en el script.
¡Copiado!
1DATA work.testblkld;
2 INPUT name $ age sex $ bdate mmddyy.;
3 CARDS;
4amy 3 f 030185
5bill 12 m 121277
6charlie 35 m 010253
7david 19 m 101469
8elinor 42 f 080845
9pearl 78 f 051222
10vera 96 f 101200
11frank 24 m 092663
12georgia 1 f 040687
13henry 46 m 053042
14joann 27 f 020461
15buddy 66 m 101432
16;
17RUN;
3 Bloque de código
PROC SQL
Explicación :
Este bloque utiliza `PROC SQL` para crear una nueva tabla `testblkld1` en la librería `mydblib` (que representa la conexión a Greenplum). La opción `BULKLOAD=YES` activa la carga masiva. Las opciones `BL_PORT`, `BL_HOST` y `BL_PROTOCOL="gpfdist"` son parámetros específicos para la configuración del protocolo GPFDIST de Greenplum, permitiendo una transferencia de datos optimizada. `bl_format='CSV'` especifica el formato de los datos enviados. La tabla se crea seleccionando todas las columnas del conjunto de datos `work.testblkld`.
¡Copiado!
1PROC SQL;
2create TABLE mydblib.testblkld1
3 (BULKLOAD=YES
4 BL_PORT=&port
5 BL_HOST=&host
6 BL_PROTOCOL="gpfdist"
7 bl_format='CSV')
8 as select * from work.testblkld;
9QUIT;
4 Bloque de código
DATA STEP
Explicación :
Este bloque utiliza un paso `DATA` para crear la tabla `testblkld2` en la librería `mydblib`. Como en el ejemplo `PROC SQL`, las opciones `BULKLOAD=YES`, `BL_PORT`, `BL_HOST` y `BL_PROTOCOL="gpfdist"` se especifican directamente en la instrucción `DATA` para la tabla objetivo, activando así la carga masiva hacia Greenplum. La instrucción `set work.testblkld;` indica que los datos a cargar provienen del conjunto de datos temporal `work.testblkld` creado previamente.
¡Copiado!
1DATA mydblib.testblkld2 (
2 BULKLOAD=YES
3 BL_PORT=&port
4 BL_HOST=&host
5 BL_PROTOCOL="gpfdist"
6 );
7 SET work.testblkld;
8RUN;
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 : SAS SAMPLE LIBRARY, NAME: bulkload.sas, TITLE: Sample Programs, PRODUCT: SAS/ACCESS to Greenplum, SYSTEM: z/OS, UNIX, WINDOWS, REF: SAS/ACCESS 9 for Relational Databases: Reference