Auparavant complexe, cette opération est désormais simplifiée grâce à un type spécifique de librairie : la Caslib de type CAS (srcType="CAS").
Le Concept : Un pont entre deux mémoires
Traditionnellement, une caslib pointe vers une source physique (un dossier système, une base de données Oracle, etc.) et charge les données en mémoire.
La nouveauté ici est de définir une caslib dont la source n'est pas un disque, mais la mémoire d'un autre serveur CAS.
Imaginons que vous deviez migrer des tables chargées en mémoire depuis un environnement source (ex: "From35") vers un environnement cible (ex: "Target"), situés dans deux namespaces différents.
Voici la procédure en 3 étapes pour réaliser ce transfert proprement :
Étape 1 : Créer le "Pont" (La Caslib de transfert)
Sur votre environnement cible, vous allez créer une caslib spéciale. Elle agira comme un tunnel vers l'environnement source.
CAS transfersess;
PROC CAS;
/* Création de la caslib 'transfer' qui pointe vers la source */
table.addcaslib /
name="transfer",
dataSource={
srctype="CAS", /* Le type magique */
user="mon_user",
password="mon_password", /* À encoder de préférence ! */
cashost="controller.source-env-host", /* L'adresse du contrôleur source */
caslib="VAModels" /* La caslib source à lire */
};
QUIT;
1
CAS transfersess;
2
PROC CAS;
3
/* Création de la caslib 'transfer' qui pointe vers la source */
4
TABLE.addcaslib /
5
name="transfer",
6
dataSource={
7
srctype="CAS", /* Le type magique */
8
user="mon_user",
9
password="mon_password", /* À encoder de préférence ! */
10
cashost="controller.source-env-host", /* L'adresse du contrôleur source */
11
caslib="VAModels"/* La caslib source à lire */
12
};
13
QUIT;
Note : Le cashost correspond au nom d'hôte du contrôleur CAS source (récupérable via la configuration CAS).
Étape 2 : Charger les données dans la mémoire cible
Les tables de l'environnement source sont maintenant visibles via la librairie transfer. Il suffit de les charger dans la mémoire de votre librairie de destination finale (ex: VAModels sur la cible).
PROC CAS;
/* Copie de la table de 'transfer' vers 'VAModels' locale */
table.loadtable /
caslib="transfer"
path="MA_TABLE_SOURCE"
casout={caslib="VAModels", name="MA_TABLE_CIBLE", promote=TRUE};
QUIT;
1
PROC CAS;
2
/* Copie de la table de 'transfer' vers 'VAModels' locale */
Étape 3 : Persister les données (Sauvegarde physique)
Les données sont maintenant dans la mémoire du nouveau serveur, mais elles disparaîtront au redémarrage si elles ne sont pas sauvegardées sur le disque local du nouvel environnement.
PROC CAS;
/* Écriture physique sur le disque de la cible */
table.save /
caslib="VAModels"
name="MA_TABLE_CIBLE"
table={caslib="VAModels", name="MA_TABLE_CIBLE"}
replace=True;
QUIT;
Les codes et exemples fournis sur WeAreCAS.eu sont à but pédagogique. Il est impératif de ne pas les copier-coller aveuglément sur vos environnements de production. La meilleure approche consiste à comprendre la logique avant de l'appliquer. Nous vous recommandons vivement de tester ces scripts dans un environnement de test (Sandbox/Dev). WeAreCAS décline toute responsabilité quant aux éventuels impacts ou pertes de données sur vos systèmes.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.