Los ejemplos interactúan con una base de datos Amazon Redshift externa. Los nombres de las tablas Redshift utilizados en los ejemplos son marcadores de posición y deben existir en el entorno Redshift del usuario. Para la creación de datos internos en SAS, se proporcionan pasos DATA.
1 Bloque de código
CASLIB
Explicación : Este ejemplo crea una biblioteca de datos CAS (caslib) llamada `redshift_lib_basic` que se conecta a una base de datos Amazon Redshift. Utiliza las opciones `srctype` para especificar el tipo de origen, `server`, `username`, `password` y `database` para la información de conexión. Reemplace los valores de las opciones con su propia información de conexión de Redshift.
¡Copiado!
/* Establece una conexión sencilla a una base de datos Amazon Redshift. */
caslib redshift_lib_basic desc='Caslib Redshift Básica'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Reemplace por su servidor Redshift */
username='redshift_user',
password='your_redshift_password',
database='your_redshift_database');
/* Verificar que la caslib esté bien definida */
proc cas; table.caslibinfo caslib='redshift_lib_basic'; run; quit;
1
/* Establece una conexión sencilla a una base de datos Amazon Redshift. */
Explicación : Este ejemplo muestra cómo cargar una tabla existente de Amazon Redshift (`my_redshift_table`) al servidor CAS usando `PROC CASUTIL`. También ilustra la capacidad de sobrescribir las opciones de conexión (como el nombre de usuario y la contraseña) directamente en las `dataSourceOptions` de la declaración `LOAD`. La tabla se carga en la caslib `casuser` bajo el nombre `my_cas_table_from_redshift`. `ephem=TRUE` indica que la tabla CAS es efímera.
¡Copiado!
/* Creación de una caslib básica si no existe */
caslib redshift_lib_load desc='Caslib Redshift para Carga'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Reemplace por su servidor Redshift */
username='redshift_user_load',
password='your_redshift_password_load',
database='your_redshift_database_load');
/* Cargar una tabla 'my_redshift_table' existente de Redshift en CAS */
/* Las credenciales pueden ser sobrescritas a nivel de procedimiento */
proc casutil;
list files incaslib="redshift_lib_load"; /* Lista las tablas disponibles en la caslib Redshift */
load casdata="my_redshift_table" incaslib="redshift_lib_load"
outcaslib="casuser" casout="my_cas_table_from_redshift"
dataSourceOptions=(
username='user_override', /* Sobrescribe el usuario */
password='password_override' /* Sobrescribe la contraseña */
) ephem=TRUE; /* ephem=TRUE para una tabla temporal */
list files incaslib="casuser"; /* Verifica la presencia de la nueva tabla CAS */
contents casdata="my_cas_table_from_redshift" incaslib="casuser";
quit;
1
/* Creación de una caslib básica si no existe */
2
caslib redshift_lib_load desc='Caslib Redshift para Carga'
3
dataSource=(srctype='redshift',
4
server='redshift-server.example.com', /* Reemplace por su servidor Redshift */
5
username='redshift_user_load',
6
password='your_redshift_password_load',
7
database='your_redshift_database_load');
8
9
/* Cargar una tabla 'my_redshift_table' existente de Redshift en CAS */
10
/* Las credenciales pueden ser sobrescritas a nivel de procedimiento */
11
PROC CASUTIL;
12
list files incaslib="redshift_lib_load"; /* Lista las tablas disponibles en la caslib Redshift */
/* 1. Crear una tabla SAS en memoria (CAS) para la carga */
data casuser.sample_data;
length id 8 name $20 score 8;
input id name $ score;
datalines;
1 John 85
2 Jane 92
3 Mike 78
4 Emily 95
;
run;
/* 2. Establecer una conexión a Redshift con opciones de carga masiva */
caslib redshift_lib_bulk desc='Caslib Redshift para Carga Masiva'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Reemplace */
username='redshift_user_bulk',
password='your_redshift_password_bulk',
database='your_redshift_database_bulk',
bucket='your-s3-bucket-name', /* Reemplace por su bucket S3 */
region='us-east-1', /* Reemplace por su región AWS */
bulkLoad=TRUE, /* Activar la carga masiva */
deleteDataFiles=TRUE, /* Elimina los archivos temporales en S3 después de la carga */
blFormat='PARQUET' /* Utiliza el formato Parquet para la transferencia S3 */
);
/* 3. Cargar la tabla CAS en Amazon Redshift utilizando la carga masiva */
proc casutil;
save casdata="sample_data" incaslib="casuser"
outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
replace; /* replace=TRUE si la tabla Redshift ya existe */
quit;
1
/* 1. Crear una tabla SAS en memoria (CAS) para la carga */
2
DATA casuser.sample_data;
3
LENGTH id 8 name $20 score 8;
4
INPUT id name $ score;
5
DATALINES;
6
1 John 85
7
2 Jane 92
8
3 Mike 78
9
4 Emily 95
10
;
11
RUN;
12
13
/* 2. Establecer una conexión a Redshift con opciones de carga masiva */
14
caslib redshift_lib_bulk desc='Caslib Redshift para Carga Masiva'
replace; /* replace=TRUE si la tabla Redshift ya existe */
32
QUIT;
4 Bloque de código
CASLIB
¡Copiado!
/* Establece una conexión SSO a una base de datos Amazon Redshift */
caslib redshift_lib_sso desc='Caslib Redshift con SSO'
dataSource=(srctype='redshift',
server='myserver.redshift.amazonaws.com', /* Reemplace */
username='myuserid', /* Reemplace por su ID de usuario */
database='myuserdb', /* Reemplace por su base de datos Redshift */
region='us-east-1', /* Reemplace por su región AWS */
authMethod='IAM', /* Utiliza la autenticación IAM para SSO */
clusterId='dbrs1', /* Reemplace por el ID de su clúster Redshift */
authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Reemplace */
awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Reemplace */
);
/* Verificar que la caslib esté bien definida */
proc cas; table.caslibinfo caslib='redshift_lib_sso'; run; quit;
1
/* Establece una conexión SSO a una base de datos Amazon Redshift */
2
caslib redshift_lib_sso desc='Caslib Redshift con SSO'
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.