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!
/* CREATE GLOBAL MACROS FOR BULKLOAD */
%GLOBAL PORT; /* Port for Hawq bulk loader */
%GLOBAL HOST; /* Client box for Hawq bulk load */
/* ASSIGN GLOBAL MACRO VALUES FOR BULKLOAD */
%let PORT =;
%let HOST =;
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.
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!
data work.testblkld;
input name $ age sex $ bdate mmddyy.;
cards;
amy 3 f 030185
bill 12 m 121277
charlie 35 m 010253
david 19 m 101469
elinor 42 f 080845
pearl 78 f 051222
vera 96 f 101200
frank 24 m 092663
georgia 1 f 040687
henry 46 m 053042
joann 27 f 020461
buddy 66 m 101432
;
run;
1
DATA work.testblkld;
2
INPUT name $ age sex $ bdate mmddyy.;
3
CARDS;
4
amy 3 f 030185
5
bill 12 m 121277
6
charlie 35 m 010253
7
david 19 m 101469
8
elinor 42 f 080845
9
pearl 78 f 051222
10
vera 96 f 101200
11
frank 24 m 092663
12
georgia 1 f 040687
13
henry 46 m 053042
14
joann 27 f 020461
15
buddy 66 m 101432
16
;
17
RUN;
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!
proc sql;
create table mydblib.testblkld1
(BULKLOAD=YES
BL_PORT=&port
BL_HOST=&host
BL_PROTOCOL="gpfdist"
bl_format='CSV')
as select * from work.testblkld;
quit;
1
PROC SQL;
2
create 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;
9
QUIT;
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!
data mydblib.testblkld2 (
BULKLOAD=YES
BL_PORT=&port
BL_HOST=&host
BL_PROTOCOL="gpfdist"
);
set work.testblkld;
run;
1
DATA mydblib.testblkld2 (
2
BULKLOAD=YES
3
BL_PORT=&port
4
BL_HOST=&host
5
BL_PROTOCOL="gpfdist"
6
);
7
SET work.testblkld;
8
RUN;
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.