ETL CAS

Conector de datos Amazon Redshift

Este código también está disponible en: Deutsch English Español
Nivel de dificultad
Principiante
Publicado el :
El conector de datos Amazon Redshift facilita la integración de los datos alojados en Amazon Redshift con el entorno de análisis distribuido de SAS© Viya. Se basa en la declaración CASLIB para definir la conexión y en PROC CASUTIL para manipular los datos. Hay opciones específicas disponibles para gestionar la autenticación (incluido el SSO con Microsoft Entra ID y AWS IAM), la carga y descarga masiva (a través de S3 para un mayor rendimiento), y la conversión de tipos de datos entre Redshift y CAS. Los tipos de datos CHAR y VARCHAR de Redshift se gestionan en términos de bytes, mientras que el servidor CAS admite VARCHAR y convierte los tipos numéricos enteros a DOUBLE para las operaciones no soportadas directamente por CAS, con una precisión de 15 dígitos.
Análisis de datos

Type : BASE_DE_DATOS_EXTERNA


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!
1/* Establece una conexión sencilla a una base de datos Amazon Redshift. */
2caslib redshift_lib_basic desc='Caslib Redshift Básica'
3 dataSource=(srctype='redshift',
4 server='redshift-server.example.com', /* Reemplace por su servidor Redshift */
5 username='redshift_user',
6 password='your_redshift_password',
7 database='your_redshift_database');
8 
9/* Verificar que la caslib esté bien definida */
10PROC CAS; TABLE.caslibinfo caslib='redshift_lib_basic'; RUN; QUIT;
2 Bloque de código
PROC CASUTIL
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!
1/* Creación de una caslib básica si no existe */
2caslib 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 */
11PROC CASUTIL;
12 list files incaslib="redshift_lib_load"; /* Lista las tablas disponibles en la caslib Redshift */
13
14 load casdata="my_redshift_table" incaslib="redshift_lib_load"
15 outcaslib="casuser" casout="my_cas_table_from_redshift"
16 dataSourceOptions=(
17 username='user_override', /* Sobrescribe el usuario */
18 password='password_override' /* Sobrescribe la contraseña */
19 ) ephem=TRUE; /* ephem=TRUE para una tabla temporal */
20
21 list files incaslib="casuser"; /* Verifica la presencia de la nueva tabla CAS */
22 contents casdata="my_cas_table_from_redshift" incaslib="casuser";
23QUIT;
3 Bloque de código
DATA STEP / PROC CASUTIL Data
¡Copiado!
1/* 1. Crear una tabla SAS en memoria (CAS) para la carga */
2DATA casuser.sample_data;
3 LENGTH id 8 name $20 score 8;
4 INPUT id name $ score;
5 DATALINES;
61 John 85
72 Jane 92
83 Mike 78
94 Emily 95
10;
11RUN;
12 
13/* 2. Establecer una conexión a Redshift con opciones de carga masiva */
14caslib redshift_lib_bulk desc='Caslib Redshift para Carga Masiva'
15 dataSource=(srctype='redshift',
16 server='redshift-server.example.com', /* Reemplace */
17 username='redshift_user_bulk',
18 password='your_redshift_password_bulk',
19 database='your_redshift_database_bulk',
20 bucket='your-s3-bucket-name', /* Reemplace por su bucket S3 */
21 region='us-east-1', /* Reemplace por su región AWS */
22 bulkLoad=TRUE, /* Activar la carga masiva */
23 deleteDataFiles=TRUE, /* Elimina los archivos temporales en S3 después de la carga */
24 blFormat='PARQUET' /* Utiliza el formato Parquet para la transferencia S3 */
25 );
26 
27/* 3. Cargar la tabla CAS en Amazon Redshift utilizando la carga masiva */
28PROC CASUTIL;
29 save casdata="sample_data" incaslib="casuser"
30 outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
31 replace; /* replace=TRUE si la tabla Redshift ya existe */
32QUIT;
4 Bloque de código
CASLIB
¡Copiado!
1/* Establece una conexión SSO a una base de datos Amazon Redshift */
2caslib redshift_lib_sso desc='Caslib Redshift con SSO'
3 dataSource=(srctype='redshift',
4 server='myserver.redshift.amazonaws.com', /* Reemplace */
5 username='myuserid', /* Reemplace por su ID de usuario */
6 database='myuserdb', /* Reemplace por su base de datos Redshift */
7 region='us-east-1', /* Reemplace por su región AWS */
8 authMethod='IAM', /* Utiliza la autenticación IAM para SSO */
9 clusterId='dbrs1', /* Reemplace por el ID de su clúster Redshift */
10 authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Reemplace */
11 awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Reemplace */
12 );
13 
14/* Verificar que la caslib esté bien definida */
15PROC CAS; TABLE.caslibinfo caslib='redshift_lib_sso'; RUN; QUIT;
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


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.