SAS VIYA & OPEN SOURCE

0

1.   Python SWAT en SAS Viya 3.5

El paquete SAS Scripting Wrapper for Analytics Transfer (SWAT) para Python se lanzó por primera vez con SAS Viya 3.1, es una interfaz de Python para SAS Cloud Analytics Services (CAS), la parte central del framework de SAS Viya. Dado que CAS se puede utilizar en un ambiente local o en un entorno alojado en cloud, puede analizar conjuntos de datos extremadamente grandes utilizando la potencia de procesamiento que necesite, al tiempo que conserva la facilidad de usar Python en el lado del cliente de forma interactiva usando Jupyter Notebook entre otros IDE.

Con SWAT, puede ejecutar flujos de trabajo de acciones analíticas CAS, extraer los datos resumidos para procesarlos en el lado del cliente en Python, o para fusionarse con datos de otras fuentes utilizando estructuras de datos Pandas (las más familiares). De hecho, el paquete SWAT replica gran parte de la API del paquete Pandas para que el uso de CAS sea familiar para los usuarios actuales de Pandas.

Con el mejor análisis SAS en Cloud y el uso de Python con su gran colección de paquetes de código abierto, el paquete SWAT le brinda acceso a lo mejor de ambos mundos.

1.1.   Características:

·        Integración completa con Jupyter Notebook y otros IDE

·        replica gran parte de la API del paquete Pandas

·        admite clientes REST Python binarios compilados de forma nativa y puros

·        codificar en Python e integrar con SAS

2.   Instalar SWAT

Desde la versión 1.3.0 en adelante de Python SWAT se requiere establecer una variable de entorno adicional, CAS_CLIENT_SSL_CA_LIST, para que pueda encontrar los certificados necesarios para las mejoras en la comunicación cifrada.

En el siguiente Shell script veremos cómo instalar el último paquete SWAT (1.6.1) de Python y setear la variable de entorno CAS_CLIENT_SSL_CA_LIST.

No hay texto alternativo para esta imagen

Guardar el script y ejecutar con sudo, root o con los permisos necesarios para realizar la instalación.

No hay texto alternativo para esta imagen

 3.   Autenticación utilizando Archivo Authinfo

Algunos servidores y spawner SAS requieren autenticación del cliente en forma de ID de usuario y contraseña. A menudo, estas credenciales están integradas en un programa SAS. Cuando la información de contraseña no está disponible, se intenta encontrar un archivo authinfo. Un archivo authinfo contiene credenciales que pueden incluir una o más ID de usuario, contraseñas, nombres de host y números de puerto para autenticarse en múltiples servidores y spawners.

4.   Crear archivo Authinfo

Nota: Es un requisito que el archivo .authinfo esté en codificación UTF8.

En su directorio $HOME, cree un archivo llamado .authinfo

Por ejemplo, en modo de línea de comandos: touch .authinfo

No hay texto alternativo para esta imagen

El archivo debe tener permisos de lectura y escritura solo para el propietario. Use chmod para cambiar los permisos, por ejemplo: chmod 600 .authinfo

Cuando listamos el archivo, los permisos deberían tener el siguiente aspecto:

No hay texto alternativo para esta imagen

Si necesita especificar diferentes ID de usuario y contraseñas para diferentes servidores o spawners en el mismo host, agregue una especificación de puerto en el archivo .authinfo:

Por ejemplo:

host hostname port port1 user your-userid1 password your-password1

host hostname port port2 user your-userid2 password your-password2

En nuestro archivo .authinfo agrego los parámetros para autenticar la coneccion desde Python SWAT con SAS VIYA,

No hay texto alternativo para esta imagen

5  Empezando SWAT

Antes de poder usar el paquete SWAT, necesitamos un servidor CAS en ejecución. El paquete SWAT puede conectarse al puerto binario o al puerto HTTP. Si tiene la opción de cualquiera de los dos, el protocolo binario le dará un mejor rendimiento.

Aparte del host y el puerto CAS, solo necesita un nombre de usuario y contraseña para conectarse. Los nombres de usuario y contraseñas se pueden implementar de varias maneras, por lo que es posible que deba consultar al administrador del sistema sobre cómo adquirir una cuenta.

5.1 Conexión con CAS

Usando un IDE, en mi caso Jupyter Notebook podemos programar en Python con SAS VIYA y viceversa. A continuacion veremos varias ActionSets como las siguientes: conectarnos al servidor de CAS, informacion de sesion, listado de tablas en Memoria, lista de variables, estadisticas de variables, importar paquetes, modelo de regresion logistica, scorear modelos, evaluar modelos, graficar curva ROC y LIFT, entre muchos mas.

Se puede conectar a CAS de dos maneras:

No hay texto alternativo para esta imagen

5.2 Ejecución de acciones CAS

No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
No hay texto alternativo para esta imagen
Tags
Share

About Author

Enzo Roccasalva

Systems Engineer, Risk

Enzo cuenta con más de 10 años de experiencia en el sector financiero, especializándose en el sector de riesgo de crédito, modelos, y analytics. Con paso por empresas como Deloitte y Equifax, actualmente se desarrolla como Head of Analytics and Risk en SAS. Enzo es Actuario por la UBA, y posee una especialización en Big Data y Estadística del ITBA.

Leave A Reply

Back to Top