Si vous êtes un fidèle lecteur de mon blog, vous avez sans doute lu mon article pour créer une caslibc odbc.
Aujourd'hui, je vous présente comment créer un caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. oracle (ce qui est plus ou moins la même chose)
Avant de vérifier si la connexion à Oracle fonctionne dans CAS, vérifier la présence des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. d'environnement dans les fichiers de configuration cas.settings ou cas_usermods.settings (dans /opt/sas/viya/config/etc/cas/default).
Votre fichier doit contenir au moins les 3 variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. ci-dessous :
Bien-sûr les chemins indiqués doivent correspondre à votre installation.
La première étape consiste à créer une session casConnexion temporaire entre un client et le serveur Cloud Analytic Services. Elle alloue des ressources dédiées pour l'exécution distribuée de tâches analytiques et la gestion des tables en mémoire. :
Supprimons ensuite la caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. oralib (on ne sait jamais si elle existe encore ... ) :
Nous pouvons maintenant créer notre caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. oracle :
Puis les librairies associés :
Enfin, chargeons un table depuis Oracle vers CAS :
A noter, que la connexion à la base de données ne se fait PASau moment de la création de la caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance., mais au moment de l'exécution de proc casutil de chargement ou lorsque vous souhaitez lister les tables qu'il est possible de charger en mémoireGemini said
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya. CAS ( via la commande ci-dessous) :
Ce qui donne :
1
2
3
2
3
export ORACLE_HOME="/opt/sas/instantclient_12_2"
export TNS_ADMIN="/opt/sas/instantclient_12_2"
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export TNS_ADMIN="/opt/sas/instantclient_12_2"
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
1
cas sessionhousset sessopts=(caslib=casuser timeout=3600 metrics=true);
1
caslib oralib drop;
1
2
3
4
5
6
2
3
4
5
6
caslib oralib desc='Oracle Caslib'
datasource=(srctype="oracle"
username="SASUSER"
password="password"
schema="SASUSER"
path="XE");
datasource=(srctype="oracle"
username="SASUSER"
password="password"
schema="SASUSER"
path="XE");
1
caslib _all_ assign;
1
2
3
4
5
2
3
4
5
proc casutil;
list tables incaslib="oralib";
load casdata="PERSONS60" incaslib="oralib" outcaslib="oralib" casout="PERSONS60";
list tables incaslib="oralib";
quit;
list tables incaslib="oralib";
load casdata="PERSONS60" incaslib="oralib" outcaslib="oralib" casout="PERSONS60";
list tables incaslib="oralib";
quit;
Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya. CAS ( via la commande ci-dessous) :
1
2
3
2
3
proc casutil;
list files incaslib="oralib";
run;
list files incaslib="oralib";
run;
Quelques erreurs
Au moment de l'exécution de la proc casutil, vous pouvez obtenir l'erreur ci-dessous :NOTE: Executing action 'table.loadTableAction d'action CAS permettant de charger une table en mémoire depuis un caslib. Elle rend les données disponibles pour l'analyse analytique distribuée et le traitement haute performance.'.
NOTE: Performing serial LoadTableAction d'action CAS permettant de charger une table en mémoire depuis un caslib. Elle rend les données disponibles pour l'analyse analytique distribuée et le traitement haute performance. action using SAS Data Connector to Oracle.
ERROR: The connection to the data source driver failed.
ERROR: General error ORA-01017: invalid username/password; logon denied
ERROR: Function failed.
ERROR: The action stopped due to errors.
Si cette erreur survient, et comme l'indique le message d'erreur Oracle ( ORA-01017) il faut vérifier votre les valeur de username et de password. Contrairement au libname, dans une caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance., la valeur de username est sensible à la casse. Vérifier cette valeur dans votre base de données Oracle :
1
select username from dba_users;
Pour valider la casse du mot de passe, vous pouvez également exécuter le code suivant dans votre sessionInstance de connexion active entre un client et le serveur CAS (Cloud Analytic Services), isolant les ressources, les bibliothèques et les traitements d'un utilisateur au sein de SAS Viya. SAS :
1
2
3
2
3
PROC FEDSQL nolibs
noprompt='DRIVER=ORACLE;uid="sasuser";pwd="xxxxx";path="XE";catalog="ORALIB" ';
quit;
noprompt='DRIVER=ORACLE;uid="sasuser";pwd="xxxxx";path="XE";catalog="ORALIB" ';
quit;
Ce qui donne :
Le même test avec le login en majuscule :
1
2
3
2
3
PROC FEDSQL nolibs
noprompt='DRIVER=ORACLE;uid="SASUSER";pwd="xxxx";path="XE";catalog="ORALIB" ';
quit;
noprompt='DRIVER=ORACLE;uid="SASUSER";pwd="xxxx";path="XE";catalog="ORALIB" ';
quit;








