Le connecteur de données Amazon Redshift est la passerelle privilégiée pour intégrer vos données d'entrepôt cloud au cœur du moteur distribué de SAS Viya (CAS). Conçu pour la performance et la sécurité, il repose sur la définition de CASLIB pour la connexion et l'utilisation de PROC CASUTIL pour la manipulation des données.
Ses points forts résident dans sa flexibilité d'authentification (supportant Microsoft Entra ID et AWS IAM) et sa capacité à gérer de volumétries massives grâce à l'optimisation Bulk Load via Amazon S3.
Type : BASE_DE_DONNEES_EXTERNE
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 | /* Établit une connexion simple à une base de données Amazon Redshift. */ |
| 2 | caslib redshift_lib_basic desc='Caslib Redshift Basique' |
| 3 | dataSource=(srctype='redshift', |
| 4 | server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */ |
| 5 | username='redshift_user', |
| 6 | password='your_redshift_password', |
| 7 | database='your_redshift_database'); |
| 8 | |
| 9 | /* Vérifier que la caslib est bien définie */ |
| 10 | PROC CAS; TABLE.caslibinfo caslib='redshift_lib_basic'; RUN; 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 */ |
| 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', /* Surcharge l'utilisateur */ |
| 18 | password='password_override' /* Surcharge le mot de passe */ |
| 19 | ) ephem=TRUE; /* ephem=TRUE pour une table temporaire */ |
| 20 | |
| 21 | list files incaslib="casuser"; /* Vérifie la présence de la nouvelle table CAS */ |
| 22 | contents casdata="my_cas_table_from_redshift" incaslib="casuser"; |
| 23 | 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' |
| 15 | dataSource=(srctype='redshift', |
| 16 | server='redshift-server.example.com', /* Remplacez */ |
| 17 | username='redshift_user_bulk', |
| 18 | password='your_redshift_password_bulk', |
| 19 | database='your_redshift_database_bulk', |
| 20 | bucket='your-s3-bucket-name', /* Remplacez par votre bucket S3 */ |
| 21 | region='us-east-1', /* Remplacez par votre région AWS */ |
| 22 | bulkLoad=TRUE, /* Activer le chargement en masse */ |
| 23 | deleteDataFiles=TRUE, /* Supprime les fichiers temporaires sur S3 après le chargement */ |
| 24 | blFormat='PARQUET' /* Utilise le format Parquet pour le transfert S3 */ |
| 25 | ); |
| 26 | |
| 27 | /* 3. Charger la table CAS dans Amazon Redshift en utilisant le bulk load */ |
| 28 | PROC CASUTIL; |
| 29 | save casdata="sample_data" incaslib="casuser" |
| 30 | outcaslib="redshift_lib_bulk" casout="sample_redshift_table" |
| 31 | replace; /* replace=TRUE si la table Redshift existe déjà */ |
| 32 | QUIT; |
| 1 | /* Établit une connexion SSO à une base de données Amazon Redshift */ |
| 2 | caslib redshift_lib_sso desc='Caslib Redshift avec SSO' |
| 3 | dataSource=(srctype='redshift', |
| 4 | server='myserver.redshift.amazonaws.com', /* Remplacez */ |
| 5 | username='myuserid', /* Remplacez par votre ID utilisateur */ |
| 6 | database='myuserdb', /* Remplacez par votre base de données Redshift */ |
| 7 | region='us-east-1', /* Remplacez par votre région AWS */ |
| 8 | authMethod='IAM', /* Utilise l'authentification IAM pour SSO */ |
| 9 | clusterId='dbrs1', /* Remplacez par l'ID de votre cluster Redshift */ |
| 10 | authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Remplacez */ |
| 11 | awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Remplacez */ |
| 12 | ); |
| 13 | |
| 14 | /* Vérifier que la caslib est bien définie */ |
| 15 | PROC CAS; TABLE.caslibinfo caslib='redshift_lib_sso'; RUN; QUIT; |
FedSQL est une implémentation propriétaire de SAS de la norme ANSI SQL:1999, offrant un accès évo...
Ce document explique comment les moteurs SAS gèrent l'accès et le traitement des fichiers de donn...
Ce document décrit les bibliothèques SAS par défaut (Work, User, Sashelp, Sasuser) fournies par S...
Ce document décrit les caractéristiques des moteurs SAS, incluant un résumé des moteurs courammen...