La migración de SAS© 9.4 a SAS© Viya™ a menudo conlleva una curva de aprendizaje en cuanto a la gestión de datos en memoria. Una confusión frecuente surge durante la transición de PROC SQL a PROC FEDSQL para interactuar con tablas cargadas en las bibliotecas CAS (CASLIBs).
Si alguna vez ha encontrado el error "BASE driver, schema name... was not found", este artículo le explica por qué ocurre y cómo corregir su código.
Imaginemos que está trabajando en un entorno de SAS© Viya™. Ha definido una CASLIB basada en una ruta física (path-based) y ha cargado una tabla en memoria.
Esta es la configuración típica:
Definición de la CASLIB y del Libref:
Carga de datos en memoria (In-Memory):
Se utiliza PROC CASUTIL para cargar una tabla (por ejemplo, test.sashdat) en la memoria del servidor CAS.
Hasta ahora, todo funciona. La tabla es accesible en memoria con el nombre mycas.test.
Para realizar una agregación (como un GROUP BY), decide utilizar PROC FEDSQL, que es la implementación estándar de SQL para el motor CAS.
Intenta ejecutar el siguiente código:
Es aquí donde el sistema devuelve el error de bloqueo:
El error no se debe a un problema de configuración de la biblioteca ni a un archivo faltante. Se debe a la forma en que PROC FEDSQL se comunica con el servidor CAS.
A diferencia de un procedimiento SAS© clásico que se ejecuta localmente, PROC FEDSQL necesita saber explícitamente en qué sesión CAS debe operar para acceder a las tablas en memoria. Si no se hace referencia a ninguna sesión, el procedimiento intenta encontrar la tabla a través del motor local (BASE driver), que no conoce el esquema "MYCAS" definido en el servidor remoto.
Para corregir este problema, debe hacer dos cosas:
Asegurarse de que una sesión CAS esté activa.
Indicar a PROC FEDSQL que utilice esta sesión mediante la opción SESSREF.
Aquí está el código corregido:
Lo que hay que recordar
Añadir la opción sessref=NombreDeSuSesion es indispensable cuando se manipulan tablas CAS directamente con FedSQL. Esto crea el puente necesario entre su código y los datos que residen en la memoria en el clúster de Viya™.