Transférer des données de mémoire à mémoire entre serveurs CAS
Simon 32 vistas
Nivel de dificultad
Confirmé
Publicado el :
Consejo del experto
Michael
Lors d'une migration entre environnements Viya, évitez le goulot d'étranglement des entrées/sorties disque : l'utilisation d'une Caslib de type srcType="CAS" permet un transfert pur mémoire, contournant la complexité des échanges de fichiers entre namespaces Kubernetes. N'oubliez cependant jamais l'étape finale de persistance sur le disque cible, car une donnée transférée en mémoire reste volatile par nature et disparaîtra au prochain redémarrage.
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;
Los códigos y ejemplos proporcionados en WeAreCAS.eu son con fines educativos. Es imperativo no copiarlos y pegarlos ciegamente en sus entornos de producción. El mejor enfoque es comprender la lógica antes de aplicarla. Recomendamos encarecidamente probar estos scripts en un entorno de prueba (Sandbox/Dev). WeAreCAS no acepta ninguna responsabilidad por cualquier impacto o pérdida de datos en sus sistemas.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.