CAS

Compartir datos entre dos sesiones CAS

Simon 30/04/2021 1 Aufrufe

En la arquitectura de SAS© Viya, la gestión de la memoria y de las sesiones es un concepto clave. Es frecuente que un usuario cargue datos o cree una librería (caslib) en una sesión (llamémosla Sesión A), y luego desee acceder a ellos desde una nueva sesión (Sesión B).

Sin embargo, un intento directo de asignar la librería existente en la nueva sesión a menudo no muestra los datos esperados. ¿Por qué existe esta compartimentación y cómo superarla?

Illustration

Entender el Alcance (Scope)

El nudo del problema reside en el alcance de su caslib y de las tablas que contiene. Por defecto, cuando crea una caslib o carga una tabla en memoria sin una configuración específica, esta a menudo tiene un alcance de sesión (session scope).

  • Alcance de Sesión: Los datos son privados. "Pertenecen" exclusivamente a la sesión que los creó (Sesión A). La Sesión B no puede verlos ni utilizarlos, incluso si intenta redefinir la librería.

  • Alcance Global: Los datos son compartidos. Son accesibles para todas las sesiones que tengan los permisos suficientes para acceder al servidor CAS.

La Solución: La Promoción

No es posible simplemente "conectar" la Sesión B al espacio de memoria privado de la Sesión A. Para que los datos sean accesibles para la Sesión B (y para otras), debe cambiar el estado de sus datos.

El método consiste en utilizar la acción promote.

¿Cómo proceder?

En lugar de intentar reasignar la librería completa, debe promover explícitamente las tablas específicas que desea compartir.

  1. En la Sesión A (propietaria): Utilice la acción de promoción en su tabla. Esto mueve la tabla de la memoria local de la sesión a la memoria global del servidor.

  2. En la Sesión B: Una vez que la tabla pasa a tener alcance global (global scope), se vuelve visible y accesible instantáneamente, sin necesidad de recargar los datos desde el disco.

Si no ve sus tablas desde una nueva sesión, no intente "reparar" la definición de la librería. Pregúntese sobre el alcance de sus datos.

  • Si la tabla tiene un alcance de sesión (session scope), es invisible para los demás.

  • Para compartirla, debe promoverla (promote) a un alcance global (global scope).