Transférer des données de mémoire à mémoire entre serveurs CAS
Simon 32 Aufrufe
Schwierigkeitsgrad
Confirmé
Veröffentlicht am :
Expertenrat
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;
Die auf WeAreCAS.eu bereitgestellten Codes und Beispiele dienen Lehrzwecken. Es ist zwingend erforderlich, sie nicht blind in Ihre Produktionsumgebungen zu kopieren. Der beste Ansatz besteht darin, die Logik zu verstehen, bevor sie angewendet wird. Wir empfehlen dringend, diese Skripte in einer Testumgebung (Sandbox/Dev) zu testen. WeAreCAS übernimmt keine Verantwortung für mögliche Auswirkungen oder Datenverluste auf Ihren Systemen.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.