Veröffentlicht am :
Datenzugriff, ETL CREATION_INTERNE

PostgreSQL Datenkonnektor

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieser Datenkonnektor erleichtert die Integration von PostgreSQL-Datenbanken mit CAS und bietet Funktionen zum Laden und Entladen von Daten. Er unterstützt verschiedene Verbindungsoptionen, einschließlich der Authentifizierung mit Single Sign-on für Microsoft Azure. Die Leistung großer Datenübertragungen wird durch die Bulk Load/Unload-Funktionalität, die die COPY API nutzt und ab Version 2025.03 verfügbar ist, verbessert. Spezifische Überlegungen gelten für die Handhabung von VARCHAR-Datentypen und die Genauigkeit von Ganzzahlen sowie für die Formatierung von Datums- und Zeitwerten während Massenladeoperationen. Die Groß-/Kleinschreibung ist auch ein entscheidender Punkt bei der Angabe von Kennungen und Tabellennamen.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (datalines) für CAS-Tabellen oder stellen eine Verbindung zu einer bestehenden PostgreSQL-Datenbank her (mit Anmeldeinformationen und Server-/Datenbanknamen, die vom Benutzer ersetzt werden müssen).

1 Codeblock
CASLIB statement
Erklärung :
Dieses Beispiel zeigt die minimale Syntax zum Herstellen einer Verbindung zu einer PostgreSQL-Datenbank von CAS unter Verwendung der CASLIB-Anweisung. Der Parameter 'srctype' ist auf 'postgres' gesetzt, und wesentliche Verbindungsinformationen wie Server, Benutzername, Passwort, Datenbank und Schema werden bereitgestellt. Der Befehl 'proc casutil; list caslib=PostgreSQLcaslib;' ermöglicht die Überprüfung der Verbindungsherstellung und das Anzeigen der über diese Caslib zugänglichen Dateien (Tabellen).
Kopiert!
1/* Remplacez 'PGserver', 'user1', 'myPwd', 'PGdatabase' et 'myschema' par vos propres informations de connexion. */
2caslib PostgreSQLcaslib desc='PostgreSQL Caslib'
3 dataSource=(srctype='postgres',
4 server='PGserver',
5 username='user1',
6 password='myPwd',
7 database='PGdatabase',
8 schema='myschema');
9 
10/* Pour vérifier la connexion et lister les tables si la caslib est active */
11PROC CASUTIL;
12 list caslib=PostgreSQLcaslib;
13QUIT;
2 Codeblock
PROC CASUTIL
Erklärung :
Dieses Beispiel verwendet die Prozedur PROC CASUTIL, um eine bestimmte Tabelle ('myPGdata') aus einer PostgreSQL-Datenbank (zugänglich über 'PostgreSQLcaslib') in SAS Cloud Analytic Services zu laden. Die resultierende CAS-Tabelle heißt 'class_from_PostgreSQLcaslib' und wird in der Caslib 'casuser' gespeichert. Es zeigt auch, wie spezifische Anmeldeinformationen auf der Ladeoperationsebene über die Option 'dataSourceOptions' ersetzt werden können, wodurch diejenigen überschrieben werden, die bei der Caslib-Erstellung definiert wurden.
Kopiert!
1/* Créez d'abord la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */
2/* Assurez-vous que la table 'myPGdata' existe dans votre base de données PostgreSQL. */
3 
4PROC CASUTIL;
5 /* Charger la table 'myPGdata' de la caslib 'PostgreSQLcaslib' dans une nouvelle table CAS 'class_from_PostgreSQLcaslib' dans la caslib 'casuser'. */
6 /* Les identifiants spécifiés dans dataSourceOptions écraseront ceux définis dans la CASLIB. */
7 load casdata="myPGdata" incaslib="PostgreSQLcaslib" outcaslib="casuser"
8 casout="class_from_PostgreSQLcaslib" replace
9 dataSourceOptions=(username='user5', password='myNewPwd');
10 
11 /* Lister les fichiers dans la caslib 'casuser' pour vérifier que la table a été chargée. */
12 list files incaslib="casuser";
13 
14 /* Afficher les informations sur la structure de la table chargée. */
15 contents casdata="class_from_PostgreSQLcaslib" incaslib="casuser";
16QUIT;
3 Codeblock
DATA STEP / PROC CASUTIL Data
Erklärung :
Dieses Beispiel demonstriert das Massenladen (Bulk Load) einer CAS-Tabelle mit Datums- und Zeitwerten nach PostgreSQL. Zuerst wird eine temporäre CAS-Tabelle ('timedata') mit spezifisch formatierten Zeitwerten ('time16.6') erstellt. Anschließend wird die Prozedur PROC CASUTIL mit der Option 'bulkload=true' für eine optimierte Übertragung verwendet. Die Option 'dbtype="d_timefmt='time'"' ist entscheidend, um PostgreSQL mitzuteilen, wie die Zeitspalte zu interpretieren ist, um sicherzustellen, dass die Werte korrekt und ohne Trunkierung oder Konvertierungsfehler eingefügt werden.
Kopiert!
1/* Création d'une table CAS avec des données de date/heure */
2DATA casuser.timedata;
3 INPUT id d_timefmt : time16.6;
4 FORMAT d_timefmt time16.6;
5 DATALINES;
61 10:30:00.000000
72 14:45:30.123456
83 08:00:00.000000
9;
10RUN;
11 
12/* Création de la caslib PostgreSQL si ce n'est pas déjà fait (voir Exemple 1). */
13/* Assurez-vous d'avoir une caslib PostgreSQL configurée et active, par exemple 'PostgreSQLcaslib'. */
14 
15PROC CASUTIL;
16 /* Enregistrez la table CAS 'timedata' vers PostgreSQL en utilisant le chargement en masse. */
17 /* Le paramètre dbtype assure le formatage correct de la colonne de temps. */
18 save casdata="timedata" incaslib="casuser"
19 outcaslib="PostgreSQLcaslib" casout="PG_time_data" replace
20 options={bulkload=true, dbtype="d_timefmt='time'"};
21 
22 /* Vérifiez la nouvelle table dans PostgreSQLcaslib. */
23 list files incaslib="PostgreSQLcaslib";
24QUIT;
4 Codeblock
CASLIB statement
Erklärung :
Dieses Beispiel veranschaulicht die Verbindung zu einer auf Microsoft Azure gehosteten PostgreSQL-Instanz unter Verwendung von Single Sign-on (SSO) über Microsoft Entra ID. Es ist unbedingt erforderlich, die Optionen 'username=' oder 'password=' nicht direkt in der CASLIB-Deklaration anzugeben, da dies das SSO deaktivieren würde. Die Option 'srctype' ist immer 'postgres'. Server, Datenbank und Schema werden bereitgestellt, und die Authentifizierung wird durch die SSO-Konfiguration der SAS Viya-Plattform verwaltet. Die Überprüfung über 'proc casutil' bestätigt, dass die SSO-Verbindung funktionsfähig ist und die Ressourcen zugänglich sind.
Kopiert!
1/* Remplacez 'mydataenvironment.postgres.database.azure.com', 'mypgdata' et 'myschema' par vos propres informations. */
2/* AUCUN 'username=' ou 'password=' n'est spécifié pour activer le SSO. */
3caslib pgres_azure datasource=(srctype='postgres',
4 server="mydataenvironment.postgres.database.azure.com",
5 database=mypgdata,
6 schema=myschema);
7 
8/* Pour vérifier la connexion et lister les tables si la caslib est active */
9PROC CASUTIL;
10 list caslib=pgres_azure;
11QUIT;
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.