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!
/* Établit une connexion simple à une base de données Amazon Redshift. */
caslib redshift_lib_basic desc='Caslib Redshift Basique'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */
username='redshift_user',
password='your_redshift_password',
database='your_redshift_database');
/* Vérifier que la caslib est bien définie */
proc cas; table.caslibinfo caslib='redshift_lib_basic'; run; quit;
1
/* Établit une connexion simple à une base de données 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!
/* Création d'une caslib de base si elle n'existe pas */
caslib redshift_lib_load desc='Caslib Redshift pour Chargement'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */
username='redshift_user_load',
password='your_redshift_password_load',
database='your_redshift_database_load');
/* Charger une table 'my_redshift_table' existante de Redshift dans CAS */
/* Les identifiants peuvent être surchargés au niveau de la procédure */
proc casutil;
list files incaslib="redshift_lib_load"; /* Liste les tables disponibles dans la caslib Redshift */
load casdata="my_redshift_table" incaslib="redshift_lib_load"
outcaslib="casuser" casout="my_cas_table_from_redshift"
dataSourceOptions=(
username='user_override', /* Surcharge l'utilisateur */
password='password_override' /* Surcharge le mot de passe */
) ephem=TRUE; /* ephem=TRUE pour une table temporaire */
list files incaslib="casuser"; /* Vérifie la présence de la nouvelle table CAS */
contents casdata="my_cas_table_from_redshift" incaslib="casuser";
quit;
1
/* Création d'une caslib de base si elle n'existe pas */
2
caslib redshift_lib_load desc='Caslib Redshift pour Chargement'
3
dataSource=(srctype='redshift',
4
server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */
5
username='redshift_user_load',
6
password='your_redshift_password_load',
7
database='your_redshift_database_load');
8
9
/* Charger une table 'my_redshift_table' existante de Redshift dans CAS */
10
/* Les identifiants peuvent être surchargés au niveau de la procédure */
11
PROC CASUTIL;
12
list files incaslib="redshift_lib_load"; /* Liste les tables disponibles dans la caslib Redshift */
Explicación : Este ejemplo ilustra la carga masiva de datos desde una tabla CAS (`casuser.sample_data`) a una nueva tabla en Amazon Redshift (`sample_redshift_table`).
1. Primero se crea una tabla `sample_data` en CAS con datos de ejemplo.
2. Se define una caslib `redshift_lib_bulk` para conectarse a Redshift, especificando las opciones `bulkLoad=TRUE`, `bucket` (para el bucket S3 intermedio), `region`, `deleteDataFiles=TRUE` para limpiar S3 después de la transferencia y `blFormat='PARQUET'` para el formato de archivo utilizado en la transferencia.
3. `PROC CASUTIL SAVE` se usa luego para escribir la tabla CAS en Redshift a través del mecanismo de carga masiva, que utiliza S3 como paso intermedio.
¡Copiado!
/* 1. Créer une table SAS en mémoire (CAS) pour le chargement */
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. Établir une connexion à Redshift avec options de chargement en masse */
caslib redshift_lib_bulk desc='Caslib Redshift pour Bulk Load'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez */
username='redshift_user_bulk',
password='your_redshift_password_bulk',
database='your_redshift_database_bulk',
bucket='your-s3-bucket-name', /* Remplacez par votre bucket S3 */
region='us-east-1', /* Remplacez par votre région AWS */
bulkLoad=TRUE, /* Activer le chargement en masse */
deleteDataFiles=TRUE, /* Supprime les fichiers temporaires sur S3 après le chargement */
blFormat='PARQUET' /* Utilise le format Parquet pour le transfert S3 */
);
/* 3. Charger la table CAS dans Amazon Redshift en utilisant le bulk load */
proc casutil;
save casdata="sample_data" incaslib="casuser"
outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
replace; /* replace=TRUE si la table Redshift existe déjà */
quit;
1
/* 1. Créer une table SAS en mémoire (CAS) pour le chargement */
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. Établir une connexion à Redshift avec options de chargement en masse */
14
caslib redshift_lib_bulk desc='Caslib Redshift pour Bulk Load'
replace; /* replace=TRUE si la table Redshift existe déjà */
32
QUIT;
4 Bloque de código
CASLIB
Explicación : Este ejemplo configura una caslib para conectarse a Amazon Redshift usando Single Sign-On (SSO) con autenticación AWS IAM. Utiliza `authMethod='IAM'` e incluye las opciones `clusterId`, `authenticationScope` y `awsIAMassumeRoleARN` que son necesarias para este tipo de conexión. Los valores de las opciones deben reemplazarse por los de su configuración de AWS y Microsoft Entra ID (Azure Active Directory).
¡Copiado!
/* Établit une connexion SSO à une base de données Amazon Redshift */
caslib redshift_lib_sso desc='Caslib Redshift avec SSO'
dataSource=(srctype='redshift',
server='myserver.redshift.amazonaws.com', /* Remplacez */
username='myuserid', /* Remplacez par votre ID utilisateur */
database='myuserdb', /* Remplacez par votre base de données Redshift */
region='us-east-1', /* Remplacez par votre région AWS */
authMethod='IAM', /* Utilise l'authentification IAM pour SSO */
clusterId='dbrs1', /* Remplacez par l'ID de votre cluster Redshift */
authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Remplacez */
awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Remplacez */
);
/* Vérifier que la caslib est bien définie */
proc cas; table.caslibinfo caslib='redshift_lib_sso'; run; quit;
1
/* Établit une connexion SSO à une base de données Amazon Redshift */
2
caslib redshift_lib_sso desc='Caslib Redshift avec 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.