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!
/* É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` 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!
/* 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 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. 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 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!
/* É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.