Integración entre IBM Cognos Analytics y Jupyter Notebook
Como hemos visto en ocasiones anteriores, IBM Cognos Analytics sigue mejorando en lo que a herramientas de visualización y autoservicio se refiere. Con las recientes versiones, ha ido incorporando exploraciones (que consisten en encontrar relaciones entre los datos que a simple vista uno no distingue sugiriendo visualizaciones para hacerlo) y también ha mejorado en gran parte las visualizaciones. Sin embargo, a veces no es suficiente para la tarea de un científico de datos, quien necesita más libertad para la exploración de los datos. Hasta ahora pasaba que los científicos de datos trabajaban con sus propias herramientas y luego, de alguna manera, volcaban los resultados para poder utilizarlos en los análisis. Esto genera silos de información que pueden o no compartirse y retroalimentarse.
Con la incorporación de Jupyter Notebooks dentro Cognos Analytics, podremos crear, documentar y compartir las exploraciones en una misma plataforma. Es un plus para los científicos de datos a la hora de llevar a cabo sus tareas, con la ventaja que los resultados obtenidos se pueden incorporar fácilmente a las herramientas ya existentes de Cognos Analytics.
En esta oportunidad, nos centraremos en la integración entre IBM Cognos Analytics y Jupyter Notebook. Para los que no la conocen, Jupyter Notebook es una aplicación web que permite crear y compartir documentos que contienen código (para nuestro caso en particular, Python), ecuaciones, visualizaciones y texto narrativo, por ejemplo. Dentro de los usos y lo que más nos interesa, se incluyen: limpieza y transformación de datos, simulaciones numéricas, modelado estadístico, visualización de datos y aprendizaje automático, entre otras cosas.
Esta integración está disponible desde la versión 11.1.2 de IBM Cognos Analytics y nosotros la hemos realizado en su última versión, la 11.1.5.
Pasos y requerimientos a seguir para la integración
De manera de poder llevar a cabo la integración, necesitamos tener un servidor para Jupyter Notebook, que podrá ser el mismo en el que tenemos instalado Cognos Analytics u otro distinto. Las plataformas soportadas para el servidor de Jupyter Notebook pueden ser Linux (CentOS, Ubuntu o Red Hat Enterprise Linux) o Windows 10. Lo importante aquí es que, sea cual sea la plataforma elegida para este servidor debe tener Docker instalado.
En nuestro caso, la integración que hicimos fue IBM Cognos Analytics en Windows Server 2012 R2 con Jupyter Notebooks Server en CentOS 7 con Docker CE (Community Edition).
Del lado del servidor de Jupyter Notebooks necesitamos descargar el instalador correspondiente al IBM Cognos Analytics for Jupyter Notebook Server desde la página Passport Advantage y ejecutarlo. Esto copiará en un directorio los archivos y scripts a ejecutar para instalar el contenedor de Docker e iniciarlo como servidor de Jupyter Notebooks. Éste contenedor permitirá a los usuarios de IBM Cognos Analytics crear y editar Notebooks dentro del mismo ambiente en el cual pueden crear dashboards, historias, informes, etc.
Por defecto, el contendor está configurado con los paquetes de Python más comunes para realizar Data Science/Analytics, pero también es posible actualizar o instalarle los paquetes que sean necesarios.
Ahora bien, luego de tener instalado e iniciado el contendor de Jupyter Server, solo resta configurar el acceso desde Cognos Analytics y para ello, solo basta con otorgar a los usuarios correspondientes los permisos sobre las funciones de Notebook (Capabilities) en Cognos Analytics y habilitar la conexión entre éste y el IBM Cognos Analytics for Jupyter Notebook Server.
Esto último consiste en navegar en Cognos Analytics por: Manage -> Configuration -> System -> Environment y setear la URL del servidor de Jupyter Notebook. Por defecto el puerto es 8000. En este caso por ejemplo: http://jupyter.quanam.com:8000
¡Ahora sí! Realizado todo esto, finalmente estamos en condiciones de ver en la práctica, cómo es la integración entre IBM Cognos Analytics y Jupyter Notebook.
Lo primero que vemos es que cuando queremos crear nuevo contenido en Cognos Analytics tenemos la opción New -> Notebook.
Y se abre la herramienta Notebook en una nueva pestaña dentro de Cognos Analytics:
Y como se ve en el menú de la izquierda, podemos navegar por los orígenes de datos de la misma forma como lo hacemos en las demás herramientas de la plataforma.
Beneficios de la integración entre IBM Cognos Analytics y Jupyter Notebooks
Producto de la integración, tendremos disponibles nuevas funcionalidades en los Notebooks. Aquí detallamos algunas.
- Crear y actualizar Notebooks (crear, editar, copiar, mover y también subir un notebook creado fuera de Cognos).
- Ejecutar y trabajar con datos de Cognos en un Notebook.
Cognos tiene un conector que a través de una API nos permite leer y escribir datos en Cognos.
A) Se puede leer desde los siguientes orígenes:
i. Archivos subidos en formato CSV o XLS.
ii. Conjuntos de Datos.
iii. Módulos de Datos.
iv. Paquetes de Framework Manager, incluso datos OLAP.
B) Se puede guardar contenido generado en un Notebook y dejarlo disponible como un origen de datos nuevo en Cognos, esto permite utilizarlo como cualquier archivo subido a la plataforma.
3. Incluir salidas de los Notebooks en dashboards, historias o informes.
En el próximo artículo, veremos algunos ejemplos de la integración entre Cognos Analytics y Jupyter Notebooks.
Marcelo Celio
Ingeniero en Computación / Consultor en Data & Analytics