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!
/* Stellt eine einfache Verbindung zu einer Amazon Redshift-Datenbank her. */
caslib redshift_lib_basic desc='Redshift Caslib Basic'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Ersetzen Sie dies durch Ihren Redshift-Server */
username='redshift_user',
password='your_redshift_password',
database='your_redshift_database');
/* Überprüfen Sie, ob die Caslib korrekt definiert ist */
proc cas; table.caslibinfo caslib='redshift_lib_basic'; run; quit;
1
/* Stellt eine einfache Verbindung zu einer Amazon Redshift-Datenbank her. */
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!
/* Erstellt eine Basis-Caslib, falls nicht vorhanden */
caslib redshift_lib_load desc='Redshift Caslib zum Laden'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Ersetzen Sie dies durch Ihren Redshift-Server */
username='redshift_user_load',
password='your_redshift_password_load',
database='your_redshift_database_load');
/* Lädt eine bestehende Tabelle 'my_redshift_table' von Redshift in CAS */
/* Anmeldeinformationen können auf Prozedurebene überschrieben werden */
proc casutil;
list files incaslib="redshift_lib_load"; /* Listet die in der Redshift Caslib verfügbaren Tabellen auf */
load casdata="my_redshift_table" incaslib="redshift_lib_load"
outcaslib="casuser" casout="my_cas_table_from_redshift"
dataSourceOptions=(
username='user_override', /* Benutzer überschreiben */
password='password_override' /* Passwort überschreiben */
) ephem=TRUE; /* ephem=TRUE für eine temporäre Tabelle */
list files incaslib="casuser"; /* Überprüft das Vorhandensein der neuen CAS-Tabelle */
contents casdata="my_cas_table_from_redshift" incaslib="casuser";
quit;
1
/* Erstellt eine Basis-Caslib, falls nicht vorhanden */
2
caslib 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 */
11
PROC CASUTIL;
12
list files incaslib="redshift_lib_load"; /* Listet die in der Redshift Caslib verfügbaren Tabellen auf */
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. Erstellen Sie eine SAS-Tabelle im Speicher (CAS) zum Laden */
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. Stellen Sie eine Verbindung zu Redshift mit Massenladeoptionen her */
caslib redshift_lib_bulk desc='Redshift Caslib für Massenladen'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Ersetzen */
username='redshift_user_bulk',
password='your_redshift_password_bulk',
database='your_redshift_database_bulk',
bucket='your-s3-bucket-name', /* Ersetzen Sie dies durch Ihren S3-Bucket */
region='us-east-1', /* Ersetzen Sie dies durch Ihre AWS-Region */
bulkLoad=TRUE, /* Massenladen aktivieren */
deleteDataFiles=TRUE, /* Löscht temporäre Dateien auf S3 nach dem Laden */
blFormat='PARQUET' /* Verwendet das Parquet-Format für den S3-Transfer */
);
/* 3. Laden Sie die CAS-Tabelle mithilfe des Massenladens in Amazon Redshift */
proc casutil;
save casdata="sample_data" incaslib="casuser"
outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
replace; /* replace=TRUE, wenn die Redshift-Tabelle bereits existiert */
quit;
1
/* 1. Erstellen Sie eine SAS-Tabelle im Speicher (CAS) zum Laden */
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. Stellen Sie eine Verbindung zu Redshift mit Massenladeoptionen her */
14
caslib redshift_lib_bulk desc='Redshift Caslib für Massenladen'
replace; /* replace=TRUE, wenn die Redshift-Tabelle bereits existiert */
32
QUIT;
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!
/* Stellt eine SSO-Verbindung zu einer Amazon Redshift-Datenbank her */
caslib redshift_lib_sso desc='Redshift Caslib mit SSO'
dataSource=(srctype='redshift',
server='myserver.redshift.amazonaws.com', /* Ersetzen */
username='myuserid', /* Ersetzen Sie dies durch Ihre Benutzer-ID */
database='myuserdb', /* Ersetzen Sie dies durch Ihre Redshift-Datenbank */
region='us-east-1', /* Ersetzen Sie dies durch Ihre AWS-Region */
authMethod='IAM', /* Verwendet IAM-Authentifizierung für SSO */
clusterId='dbrs1', /* Ersetzen Sie dies durch die ID Ihres Redshift-Clusters */
authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Ersetzen */
awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Ersetzen */
);
/* Überprüfen Sie, ob die Caslib korrekt definiert ist */
proc cas; table.caslibinfo caslib='redshift_lib_sso'; run; quit;
1
/* Stellt eine SSO-Verbindung zu einer Amazon Redshift-Datenbank her */
2
caslib redshift_lib_sso desc='Redshift Caslib mit SSO'
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.