Publié le :
Administration CREATION_INTERNE

Ajouter une Caslib Oracle

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
L'action `table.addCaslib` de l'ensemble d'actions `Table` est utilisée pour créer une caslib Oracle. Les paramètres essentiels incluent le nom de la caslib, le type de source de données (`srctype="oracle"`), les informations d'authentification (nom d'utilisateur et mot de passe), et le chemin de connexion à la base de données Oracle (format `//<hôte_bd>:<port>/<nom_bd>`). Une fois la caslib ajoutée, les tables Oracle peuvent être chargées en mémoire CAS pour des analyses distribuées.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP et des informations de connexion simulées pour la base de données Oracle.

1 Bloc de code
PROC CAS / table.addCaslib
Explication :
Cet exemple montre l'ajout le plus simple d'une caslib Oracle. Il spécifie le nom de la caslib ('orlib'), le type de source ('oracle'), les identifiants de connexion et le chemin d'accès à la base de données. Il tente de supprimer la caslib si elle existe déjà avant de la créer pour assurer un environnement propre.
Copié !
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 /* Supprimer la caslib si elle existe déjà pour éviter les erreurs */
8 SIMPLE.dropCaslib / caslib='orlib';
9 
10 /* Ajouter une caslib Oracle avec les informations de connexion minimales */
11 TABLE.addCaslib RESULT=r /
12 caslib="orlib",
13 datasource={
14 srctype="oracle",
15 username="myuser",
16 password="mypass",
17 path="//oradb.example.com:1521/mydb"
18 };
19
20 PRINT r;
21RUN;
22QUIT;
23 
2 Bloc de code
PROC CAS / table.addCaslib
Explication :
Cet exemple étend le cas basique en ajoutant des options courantes. 'globals=TRUE' rend la caslib accessible à toutes les sessions CAS, et 'subdirs=TRUE' permet à la caslib d'accéder aux sous-répertoires du chemin spécifié dans la base de données. Une description est également ajoutée pour une meilleure documentation.
Copié !
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 /* Supprimer la caslib si elle existe déjà */
8 SIMPLE.dropCaslib / caslib='global_orlib';
9 
10 /* Ajouter une caslib Oracle, la rendant globale et permettant l'accès aux sous-répertoires */
11 TABLE.addCaslib RESULT=r /
12 caslib="global_orlib",
13 description="Caslib Oracle globale avec sous-répertoires",
14 path="//oradb.example.com:1521/mydb",
15 datasource={
16 srctype="oracle",
17 username="myuser",
18 password="mypass"
19 },
20 globals=TRUE,
21 subdirs=TRUE;
22 
23 PRINT r;
24 
25 /* Lister les caslibs pour vérifier la nouvelle entrée */
26 TABLE.caslibInfo RESULT=r_info;
27 PRINT r_info;
28RUN;
29QUIT;
30 
3 Bloc de code
PROC CAS / table.addCaslib
Explication :
Cet exemple avancé intègre une logique de vérification et de gestion des erreurs. Il vérifie d'abord l'existence de la caslib et la supprime si nécessaire. Ensuite, il tente d'ajouter la caslib et affiche un message de succès ou d'échec basé sur la sévérité du résultat de l'action CAS, ce qui est crucial pour les scripts automatisés ou les environnements de production. Le nom de la caslib est défini de manière dynamique.
Copié !
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 
8 /* Nom dynamique pour la caslib */
9 caslib_name = 'orlib_dynamic';
10 
11 /* Vérifier si la caslib existe déjà avant de tenter de l'ajouter */
12 TABLE.caslibinfo RESULT=caslib_status / caslib=caslib_name;
13 
14 IF (caslib_status.caslibinfo.Name = caslib_name) THEN DO;
15 PRINT 'NOTE: Caslib ' || caslib_name || ' existe déjà. Suppression en cours...';
16 SIMPLE.dropCaslib / caslib=caslib_name;
17 PRINT 'NOTE: Caslib ' || caslib_name || ' supprimée.';
18 END;
19 
20 /* Ajouter la caslib Oracle avec gestion d'erreurs et affichage du statut */
21 TABLE.addCaslib RESULT=r /
22 caslib=caslib_name,
23 datasource={
24 srctype="oracle",
25 username="myuser",
26 password="mypass",
27 path="//oradb.example.com:1521/mydb"
28 };
29 
30 IF (r.severity = 0) THEN DO;
31 PRINT 'NOTE: Caslib ' || caslib_name || ' ajoutée avec succès.';
32 END ELSE DO;
33 PRINT 'ERREUR: Échec de l''ajout de la caslib ' || caslib_name;
34 PRINT r;
35 END;
36 
37RUN;
38QUIT;
39 
4 Bloc de code
PROC CAS / table.addCaslib / table.loadtable Data
Explication :
Cet exemple met en évidence une intégration plus poussée avec SAS Viya en utilisant un domaine d'authentification (`authdomain`) préconfiguré sur le serveur CAS. Cela centralise la gestion des informations d'identification et améliore la sécurité. L'exemple simule ensuite une table Oracle et montre comment charger cette table dans la mémoire CAS via la caslib nouvellement créée, puis affiche un aperçu des données. Un nettoyage est inclus pour supprimer les objets créés.
Copié !
1/* Démarrer une session CAS si ce n'est pas déjà fait */
2options cashost="cloud.example.com" casport=5570;
3cas casauto;
4 
5PROC CAS;
6 SESSION casauto;
7 
8 /* Création de données d'exemple pour simuler une table Oracle */
9 DATA mydata;
10 INPUT ID $ Name $ Value;
11 DATALINES;
12 101 Apple 25
13 102 Banana 30
14 103 Orange 45
15 ;
16 RUN;
17 
18 /* Supprimer la caslib si elle existe déjà */
19 SIMPLE.dropCaslib / caslib='orlib_ad';
20 
21 /* Ajouter une caslib Oracle en utilisant un domaine d'authentification (authdomain) */
22 /* Note: L'authdomain 'oracle_auth' doit être préconfiguré sur le serveur CAS */
23 TABLE.addCaslib RESULT=r /
24 caslib="orlib_ad",
25 datasource={
26 srctype="oracle",
27 authdomain="oracle_auth", /* Utilise un domaine d'authentification Viya */
28 path="//oradb.example.com:1521/mydb"
29 };
30 PRINT r;
31 
32 /* Si la caslib a été ajoutée avec succès, tenter de charger une table */
33 IF (r.severity = 0) THEN DO;
34 /* Simuler une table existante dans Oracle en créant une table temporaire CAS */
35 DATA casuser.my_oracle_table;
36 SET mydata;
37 RUN;
38 
39 /* Charger une table depuis la caslib Oracle (simulée) vers la mémoire CAS */
40 TABLE.loadtable RESULT=lr /
41 caslib="orlib_ad",
42 path="MY_ORACLE_TABLE", /* Nom de la table dans la base de données Oracle */
43 casout={
44 name="my_cas_table",
45 replace=TRUE
46 };
47 PRINT lr;
48 
49 /* Afficher les 5 premières lignes de la table chargée */
50 TABLE.fetch casout.my_cas_table / to=5;
51 END;
52 
53 /* Nettoyage: Supprimer la table chargée et la caslib */
54 TABLE.droptable / caslib='casuser' name='my_cas_table';
55 SIMPLE.dropCaslib / caslib='orlib_ad';
56 
57RUN;
58QUIT;
59 
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'action table.addCaslib avec le moteur Oracle est le pont stratégique qui permet à SAS Viya de puiser directement dans vos entrepôts de données d'entreprise. Plutôt que d'extraire péniblement des fichiers plats, vous connectez le cluster CAS directement à la source.

Lorsque vous travaillez avec Oracle, surveillez de près l'option fetchsize. En ajustant le nombre de lignes récupérées par paquet réseau, vous pouvez optimiser considérablement la vitesse de transfert entre votre base de données et la mémoire vive de CAS, particulièrement sur des réseaux à haute latence »