Les exemples interagissent avec une base de données Amazon Redshift externe. Les noms de tables Redshift utilisés dans les exemples sont des placeholdes et doivent exister dans l'environnement Redshift de l'utilisateur. Pour la création de données internes à SAS, des étapes DATA sont fournies.
1 Bloc de code
CASLIB
Explication : Cet exemple crée une bibliothèque de données CAS (caslib) nommée `redshift_lib_basic` qui se connecte à une base de données Amazon Redshift. Il utilise les options `srctype` pour spécifier le type de source, `server`, `username`, `password` et `database` pour les informations de connexion. Remplacez les valeurs des options par vos propres informations de connexion Redshift.
Copié !
/* É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. */
Explication : Cet exemple montre comment charger une table existante depuis Amazon Redshift (`my_redshift_table`) vers le serveur CAS en utilisant `PROC CASUTIL`. Il illustre également la capacité à surcharger les options de connexion (comme le nom d'utilisateur et le mot de passe) directement dans les `dataSourceOptions` de la déclaration `LOAD`. La table est chargée dans la caslib `casuser` sous le nom `my_cas_table_from_redshift`. `ephem=TRUE` indique que la table CAS est éphémère.
Copié !
/* 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 */
Explication : Cet exemple illustre le chargement en masse (bulk load) de données depuis une table CAS (`casuser.sample_data`) vers une nouvelle table dans Amazon Redshift (`sample_redshift_table`).
1. Une table `sample_data` est d'abord créée dans CAS avec des données d'exemple.
2. Une caslib `redshift_lib_bulk` est définie pour se connecter à Redshift, en spécifiant les options `bulkLoad=TRUE`, `bucket` (pour le bucket S3 intermédiaire), `region`, `deleteDataFiles=TRUE` pour nettoyer S3 après le transfert et `blFormat='PARQUET'` pour le format de fichier utilisé pour le transfert.
3. `PROC CASUTIL SAVE` est ensuite utilisée pour écrire la table CAS dans Redshift via le mécanisme de bulk load, qui utilise S3 comme étape intermédiaire.
Copié !
/* 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 Bloc de code
CASLIB
Explication : Cet exemple configure une caslib pour se connecter à Amazon Redshift en utilisant le Single Sign-On (SSO) avec l'authentification AWS IAM. Il utilise `authMethod='IAM'` et inclut les options `clusterId`, `authenticationScope`, et `awsIAMassumeRoleARN` qui sont nécessaires pour ce type de connexion. Les valeurs des options doivent être remplacées par celles de votre configuration AWS et Microsoft Entra ID (Azure Active Directory).
Copié !
/* É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'
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.