Veröffentlicht am :
ETL EXTERNE_DATENBANK

Amazon Redshift Datenkonnektor

Dieser Code ist auch verfügbar auf: Deutsch English Español Français
Wartet auf Validierung
Der Amazon Redshift-Datenkonnektor erleichtert die Integration von auf Amazon Redshift gehosteten Daten in die verteilte Analyseumgebung von SAS© Viya. Er verwendet die CASLIB-Deklaration, um die Verbindung zu definieren, und PROC CASUTIL, um die Daten zu manipulieren. Spezifische Optionen stehen zur Verfügung, um die Authentifizierung (einschließlich SSO mit Microsoft Entra ID und AWS IAM), Massenladen und Massenentladen (über S3 für erhöhte Leistung) sowie die Konvertierung von Datentypen zwischen Redshift und CAS zu verwalten. CHAR- und VARCHAR-Datentypen in Redshift werden in Bytes verwaltet, während der CAS-Server VARCHAR unterstützt und ganzzahlige numerische Typen für Operationen, die von CAS nicht direkt unterstützt werden, in DOUBLE mit einer Genauigkeit von 15 Ziffern konvertiert.
Datenanalyse

Type : EXTERNE_DATENBANK


Die Beispiele interagieren mit einer externen Amazon Redshift-Datenbank. Die in den Beispielen verwendeten Redshift-Tabellennamen sind Platzhalter und müssen in der Redshift-Umgebung des Benutzers vorhanden sein. Für die Erstellung interner SAS-Daten werden DATA-Schritte bereitgestellt.

1 Codeblock
CASLIB
Erklärung :
Dieses Beispiel erstellt eine CAS-Datenbibliothek (Caslib) namens `redshift_lib_basic`, die sich mit einer Amazon Redshift-Datenbank verbindet. Es verwendet die Optionen `srctype` zur Angabe des Quelltyps, `server`, `username`, `password` und `database` für die Verbindungsinformationen. 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 von Amazon Redshift (`my_redshift_table`) mithilfe von `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 unter dem Namen `my_cas_table_from_redshift` in die Caslib `casuser` geladen. `ephem=TRUE` zeigt an, dass die CAS-Tabelle flüchtig 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 das Massenladen (Bulk Load) 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 Caslib `redshift_lib_bulk` wird definiert, um eine Verbindung zu Redshift herzustellen, wobei die Optionen `bulkLoad=TRUE`, `bucket` (für den temporären S3-Bucket), `region`, `deleteDataFiles=TRUE` zur Bereinigung von S3 nach der Übertragung und `blFormat='PARQUET'` für das für die Übertragung verwendete Dateiformat angegeben werden.
3. `PROC CASUTIL SAVE` wird dann verwendet, um die CAS-Tabelle über den Bulk-Load-Mechanismus, der S3 als Zwischenschritt verwendet, in 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 der Verbindung erforderlich 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