Publicado el :
ETL CREATION_INTERNE

Carga masiva de datos (Bulkload)

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza definiendo e inicializando macros globales para el puerto y el host necesarios para el mecanismo de bulkload. Luego, elimina las tablas de destino ('mydblib.testblkld1' y 'mydblib.testblkld2') si existen, para asegurar un entorno de prueba limpio. Se crea un conjunto de datos fuente ('work.testblkld') internamente usando un DATA step y datos incluidos ('cards;'). Finalmente, el script realiza dos operaciones de carga masiva: la primera a través de una instrucción CREATE TABLE de PROC SQL, y la segunda a través de un DATA step SET, especificando las opciones de bulkload como el puerto, el host, el protocolo 'gpfdist' y el formato 'CSV' para el primer caso.
Análisis de datos

Type : CREATION_INTERNE


Los datos utilizados para la carga masiva se crean directamente en el script a través de un DATA step con la instrucción 'cards;', formando el conjunto de datos 'work.testblkld'.

1 Bloque de código
MACRO GLOBAL
Explicación :
Este bloque define e inicializa dos macros globales, `PORT` y `HOST`, que son parámetros configurables para el destino de la carga masiva (bulkload). Su valor debe ser proporcionado por el usuario antes de la ejecución.
¡Copiado!
1 /* CREATE GLOBAL MACROS FOR BULKLOAD */
2 
3 %GLOBAL PORT; /* Port for Hawq bulk loader */
4 %GLOBAL HOST; /* Client box for Hawq bulk load */
5 
6 /* ASSIGN GLOBAL MACRO VALUES FOR BULKLOAD */
7 
8 %let PORT =;
9 %let HOST =;
2 Bloque de código
PROC DELETE
Explicación :
Estas dos `PROC DELETE` se utilizan para limpiar el entorno eliminando las tablas 'testblkld1' y 'testblkld2' de la biblioteca 'mydblib' antes de proceder con nuevas operaciones de carga. Esto asegura que cada ejecución del script parta de un estado conocido.
¡Copiado!
1 
2PROC DELETE
3DATA=mydblib.testblkld1;
4 
5RUN;
6PROC DELETE
7DATA=mydblib.testblkld2;
8 
9RUN;
10 
3 Bloque de código
DATA STEP Data
Explicación :
Este DATA step crea un conjunto de datos temporal llamado 'work.testblkld'. Los datos se proporcionan en línea a través de la instrucción `cards;`, definiendo las variables `name`, `age`, `sex` y `bdate`. Este conjunto de datos servirá como fuente para las operaciones de carga masiva subsiguientes.
¡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;
4 Bloque de código
PROC SQL
Explicación :
Este bloque utiliza `PROC SQL` para crear una tabla llamada 'testblkld1' en la biblioteca 'mydblib'. La opción `BULKLOAD=YES` activa la carga masiva. Las opciones `BL_PORT`, `BL_HOST`, `BL_PROTOCOL` (definido como 'gpfdist') y `bl_format` ('CSV') configuran los detalles de la transferencia de datos. Los datos se seleccionan de '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;
5 Bloque de código
DATA STEP
Explicación :
Este DATA step también realiza una carga masiva a una nueva tabla 'testblkld2' en la biblioteca 'mydblib'. A diferencia del ejemplo anterior, las opciones de bulkload (`BULKLOAD`, `BL_PORT`, `BL_HOST`, `BL_PROTOCOL`) se especifican directamente en las opciones del conjunto de datos de destino. La fuente de los datos es 'work.testblkld', leída a través de la instrucción `set`.
¡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