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 existieren. Für die interne Datenerstellung in SAS 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 sowie `server`, `username`, `password` und `database` für die Verbindungsinformationen. Ersetzen Sie die Optionswerte durch Ihre eigenen Redshift-Verbindungsinformationen.
Kopiert!
/* Établit une connexion simple à une base de données Amazon Redshift. */
caslib redshift_lib_basic desc='Caslib Redshift Basique'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */
username='redshift_user',
password='your_redshift_password',
database='your_redshift_database');
/* Vérifier que la caslib est bien définie */
proc cas; table.caslibinfo caslib='redshift_lib_basic'; run; quit;
1
/* Établit une connexion simple à une base de données Amazon Redshift. */
Erklärung : Dieses Beispiel zeigt, wie eine vorhandene Tabelle aus Amazon Redshift (`my_redshift_table`) mit `PROC CASUTIL` in 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 Caslib `casuser` unter dem Namen `my_cas_table_from_redshift` geladen. `ephem=TRUE` zeigt an, dass die CAS-Tabelle flüchtig ist.
Kopiert!
/* Création d'une caslib de base si elle n'existe pas */
caslib redshift_lib_load desc='Caslib Redshift pour Chargement'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez par votre serveur Redshift */
username='redshift_user_load',
password='your_redshift_password_load',
database='your_redshift_database_load');
/* Charger une table 'my_redshift_table' existante de Redshift dans CAS */
/* Les identifiants peuvent être surchargés au niveau de la procédure */
proc casutil;
list files incaslib="redshift_lib_load"; /* Liste les tables disponibles dans la caslib Redshift */
load casdata="my_redshift_table" incaslib="redshift_lib_load"
outcaslib="casuser" casout="my_cas_table_from_redshift"
dataSourceOptions=(
username='user_override', /* Surcharge l'utilisateur */
password='password_override' /* Surcharge le mot de passe */
) ephem=TRUE; /* ephem=TRUE pour une table temporaire */
list files incaslib="casuser"; /* Vérifie la présence de la nouvelle table CAS */
contents casdata="my_cas_table_from_redshift" incaslib="casuser";
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 */
Erklärung : Dieses Beispiel veranschaulicht das Massenladen von Daten aus einer CAS-Tabelle (`casuser.sample_data`) in eine neue Tabelle in Amazon Redshift (`sample_redshift_table`).
1. Zuerst wird eine Tabelle `sample_data` 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 bei der Übertragung verwendete Dateiformat angegeben werden.
3. `PROC CASUTIL SAVE` wird dann verwendet, um die CAS-Tabelle über den Massenlade-Mechanismus, der S3 als Zwischenschritt nutzt, in Redshift zu schreiben.
Kopiert!
/* 1. Créer une table SAS en mémoire (CAS) pour le chargement */
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. Établir une connexion à Redshift avec options de chargement en masse */
caslib redshift_lib_bulk desc='Caslib Redshift pour Bulk Load'
dataSource=(srctype='redshift',
server='redshift-server.example.com', /* Remplacez */
username='redshift_user_bulk',
password='your_redshift_password_bulk',
database='your_redshift_database_bulk',
bucket='your-s3-bucket-name', /* Remplacez par votre bucket S3 */
region='us-east-1', /* Remplacez par votre région AWS */
bulkLoad=TRUE, /* Activer le chargement en masse */
deleteDataFiles=TRUE, /* Supprime les fichiers temporaires sur S3 après le chargement */
blFormat='PARQUET' /* Utilise le format Parquet pour le transfert S3 */
);
/* 3. Charger la table CAS dans Amazon Redshift en utilisant le bulk load */
proc casutil;
save casdata="sample_data" incaslib="casuser"
outcaslib="redshift_lib_bulk" casout="sample_redshift_table"
replace; /* replace=TRUE si la table Redshift existe déjà */
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'
replace; /* replace=TRUE si la table Redshift existe déjà */
32
QUIT;
4 Codeblock
CASLIB
Erklärung : Dieses Beispiel konfiguriert eine Caslib, um sich über Single Sign-On (SSO) mit AWS IAM-Authentifizierung mit Amazon Redshift zu verbinden. Es verwendet `authMethod='IAM'` und enthält die Optionen `clusterId`, `authenticationScope` und `awsIAMassumeRoleARN`, die für diese Art der Verbindung erforderlich sind. Die Werte der Optionen müssen durch die Ihrer AWS- und Microsoft Entra ID (Azure Active Directory)-Konfiguration ersetzt werden.
Kopiert!
/* Établit une connexion SSO à une base de données Amazon Redshift */
caslib redshift_lib_sso desc='Caslib Redshift avec SSO'
dataSource=(srctype='redshift',
server='myserver.redshift.amazonaws.com', /* Remplacez */
username='myuserid', /* Remplacez par votre ID utilisateur */
database='myuserdb', /* Remplacez par votre base de données Redshift */
region='us-east-1', /* Remplacez par votre région AWS */
authMethod='IAM', /* Utilise l'authentification IAM pour SSO */
clusterId='dbrs1', /* Remplacez par l'ID de votre cluster Redshift */
authenticationScope='api://a09827234-93eo-092fjas1-92038498273/awsassumerole', /* Remplacez */
awsIAMassumeRoleARN='arn:aws:iam::129347192347098273:role/myrolename' /* Remplacez */
);
/* Vérifier que la caslib est bien définie */
proc cas; table.caslibinfo caslib='redshift_lib_sso'; run; quit;
1
/* Établit une connexion SSO à une base de données Amazon Redshift */
2
caslib redshift_lib_sso desc='Caslib Redshift avec 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.