ETL CAS

Amazon Redshift Datenkonnektor

Dieser Code ist auch verfügbar auf: English Español Deutsch
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
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/* Stellt eine einfache Verbindung zu einer Amazon Redshift-Datenbank her. */
2caslib redshift_lib_basic desc='Redshift Caslib Basic'
3 dataSource=(srctype='redshift',
4 server='redshift-server.example.com', /* Ersetzen Sie dies durch Ihren Redshift-Server */
5 username='redshift_user',
6 password='your_redshift_password',
7 database='your_redshift_database');
8 
9/* Überprüfen Sie, ob die Caslib korrekt definiert ist */
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/* Erstellt eine Basis-Caslib, falls nicht vorhanden */
2caslib redshift_lib_load desc='Redshift Caslib zum Laden'
3 dataSource=(srctype='redshift',
4 server='redshift-server.example.com', /* Ersetzen Sie dies durch Ihren Redshift-Server */
5 username='redshift_user_load',
6 password='your_redshift_password_load',
7 database='your_redshift_database_load');
8 
9/* Lädt eine bestehende Tabelle 'my_redshift_table' von Redshift in CAS */
10/* Anmeldeinformationen können auf Prozedurebene überschrieben werden */
11PROC CASUTIL;
12 list files incaslib="redshift_lib_load"; /* Listet die in der Redshift Caslib verfügbaren Tabellen auf */
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', /* Benutzer überschreiben */
18 password='password_override' /* Passwort überschreiben */
19 ) ephem=TRUE; /* ephem=TRUE für eine temporäre Tabelle */
20
21 list files incaslib="casuser"; /* Überprüft das Vorhandensein der neuen CAS-Tabelle */
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. Erstellen Sie eine SAS-Tabelle im Speicher (CAS) zum Laden */
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. Stellen Sie eine Verbindung zu Redshift mit Massenladeoptionen her */
14caslib redshift_lib_bulk desc='Redshift Caslib für Massenladen'
15 dataSource=(srctype='redshift',
16 server='redshift-server.example.com', /* Ersetzen */
17 username='redshift_user_bulk',
18 password='your_redshift_password_bulk',
19 database='your_redshift_database_bulk',
20 bucket='your-s3-bucket-name', /* Ersetzen Sie dies durch Ihren S3-Bucket */
21 region='us-east-1', /* Ersetzen Sie dies durch Ihre AWS-Region */
22 bulkLoad=TRUE, /* Massenladen aktivieren */
23 deleteDataFiles=TRUE, /* Löscht temporäre Dateien auf S3 nach dem Laden */
24 blFormat='PARQUET' /* Verwendet das Parquet-Format für den S3-Transfer */
25 );
26 
27/* 3. Laden Sie die CAS-Tabelle mithilfe des Massenladens in Amazon Redshift */
28PROC CASUTIL;
29 save casdata="sample_data" incaslib="casuser"
30 outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
31 replace; /* replace=TRUE, wenn die Redshift-Tabelle bereits existiert */
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/* Stellt eine SSO-Verbindung zu einer Amazon Redshift-Datenbank her */
2caslib redshift_lib_sso desc='Redshift Caslib mit SSO'
3 dataSource=(srctype='redshift',
4 server='myserver.redshift.amazonaws.com', /* Ersetzen */
5 username='myuserid', /* Ersetzen Sie dies durch Ihre Benutzer-ID */
6 database='myuserdb', /* Ersetzen Sie dies durch Ihre Redshift-Datenbank */
7 region='us-east-1', /* Ersetzen Sie dies durch Ihre AWS-Region */
8 authMethod='IAM', /* Verwendet IAM-Authentifizierung für SSO */
9 clusterId='dbrs1', /* Ersetzen Sie dies durch die ID Ihres Redshift-Clusters */
10 authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Ersetzen */
11 awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Ersetzen */
12 );
13 
14/* Überprüfen Sie, ob die Caslib korrekt definiert ist */
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


Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.