Veröffentlicht am :
ETL BASE_DE_DONNEES_EXTERNE

Amazon Redshift Datenkonnektor

Dieser Code ist auch verfügbar auf: English Español
Wartet auf Validierung
Der Amazon Redshift Datenkonnektor erleichtert die Integration von Daten, die auf Amazon Redshift gehostet werden, in die verteilte Analyseumgebung von SAS© Viya. Er verwendet die CASLIB-Anweisung zur Definition der Verbindung und PROC CASUTIL zur Datenmanipulation. Spezifische Optionen stehen zur Verfügung, um die Authentifizierung (einschließlich SSO mit Microsoft Entra ID und AWS IAM), Massenladevorgänge und -entladevorgänge (über S3 für erhöhte Leistung) sowie die Datentypkonvertierung zwischen Redshift und CAS zu verwalten. Redshift CHAR- und VARCHAR-Datentypen werden in Bytes behandelt, während der CAS-Server VARCHAR unterstützt und ganzzahlige numerische Typen für Operationen, die nicht direkt von CAS unterstützt werden, mit einer Präzision von 15 Stellen in DOUBLE konvertiert.
Datenanalyse

Type : BASE_DE_DONNEES_EXTERNE


Beispiele interagieren mit einer externen Amazon Redshift-Datenbank. Redshift-Tabellennamen, die in den Beispielen verwendet werden, sind Platzhalter und müssen in der Redshift-Umgebung des Benutzers existieren. Für die interne SAS-Datenerstellung werden DATA-Schritte bereitgestellt.

1 Codeblock
CASLIB
Erklärung :
Dieses Beispiel erstellt eine CAS-Datenbibliothek (Caslib) namens `redshift_lib_basic`, die eine Verbindung zu einer Amazon Redshift-Datenbank herstellt. Es verwendet `srctype`-Optionen, um den Quelltyp, `server`, `username`, `password` und `database` für Verbindungsinformationen anzugeben. Ersetzen Sie die Optionswerte durch Ihre eigenen Redshift-Verbindungsinformationen.
Kopiert!
1/* Établit une connexion simple à une base de données Amazon Redshift. */
2caslib 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 */
10PROC CAS; TABLE.caslibinfo caslib='redshift_lib_basic'; RUN; QUIT;
2 Codeblock
PROC CASUTIL
Erklärung :
Dieses Beispiel zeigt, wie eine vorhandene Tabelle aus Amazon Redshift (`my_redshift_table`) mit `PROC CASUTIL` auf den CAS-Server geladen wird. Es veranschaulicht auch die Möglichkeit, Verbindungsoptionen (wie Benutzername und Passwort) direkt in den `dataSourceOptions` der `LOAD`-Anweisung zu überschreiben. Die Tabelle wird in die `casuser`-Caslib unter dem Namen `my_cas_table_from_redshift` geladen. `ephem=TRUE` zeigt an, dass die CAS-Tabelle ephemer ist.
Kopiert!
1/* Création d'une caslib de base si elle n'existe pas */
2caslib 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 */
11PROC 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";
23QUIT;
3 Codeblock
DATA STEP / PROC CASUTIL Data
Erklärung :
Dieses Beispiel veranschaulicht den Massenladevorgang von Daten aus einer CAS-Tabelle (`casuser.sample_data`) in eine neue Tabelle in Amazon Redshift (`sample_redshift_table`).
1. Zuerst wird eine `sample_data`-Tabelle in CAS mit Beispieldaten erstellt.
2. Eine `redshift_lib_bulk`-Caslib wird definiert, um eine Verbindung zu Redshift herzustellen, wobei `bulkLoad=TRUE`-Optionen, `bucket` (für den temporären S3-Bucket), `region`, `deleteDataFiles=TRUE` zum Bereinigen von S3 nach der Übertragung und `blFormat='PARQUET'` für das Dateiformat, das für die Übertragung verwendet wird, angegeben werden.
3. `PROC CASUTIL SAVE` wird dann verwendet, um die CAS-Tabelle über den Massenlademechanismus, der S3 als Zwischenschritt verwendet, nach Redshift zu schreiben.
Kopiert!
1/* 1. Créer une table SAS en mémoire (CAS) pour le chargement */
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. Établir une connexion à Redshift avec options de chargement en masse */
14caslib 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 */
28PROC 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à */
32QUIT;
4 Codeblock
CASLIB
Erklärung :
Dieses Beispiel konfiguriert eine Caslib zur Verbindung mit Amazon Redshift unter Verwendung von Single Sign-On (SSO) mit AWS IAM-Authentifizierung. Es verwendet `authMethod='IAM'` und enthält die Optionen `clusterId`, `authenticationScope` und `awsIAMassumeRoleARN`, die für diese Art von Verbindung notwendig sind. Die Optionswerte müssen durch die Ihrer AWS- und Microsoft Entra ID (Azure Active Directory)-Konfiguration ersetzt werden.
Kopiert!
1/* Établit une connexion SSO à une base de données Amazon Redshift */
2caslib 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 */
15PROC CAS; TABLE.caslibinfo caslib='redshift_lib_sso'; RUN; QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved