Representación de cuartiles con BoxPlot


Boxplot es un tipo de gráfico que permite visualizar de forma fácil la distribución de valores de una serie o categoría.



Atlas SBI no dispone de un tipo concreto para generar este tipo de gráficos, sin embargo podemos crear un gráfico de tipo Boxplot definiendo dos series.

En este artículo vamos a ver como realizar un gráfico Boxplot para analizar la distribución de los precios de venta de cursos de las diferentes oficinas de una empresa.

Puedes encontrar más información sobre como se calcula e interpreta un Boxplot en nuestro artículo Diagrama BoxPlot o en Wikipedia

Obtención de los datos

Nuestra consulta tendrá cuatro Pasos/Steps (consulta como crear steps aquí)
  1. DatabaseQuery: Calculará los cuartiles y el RIC de cada una de las categorías, 
  2. DatabaseQuery: Calculará el máximo, mínimo, la media y la desviación estándar de cada categoría, 
  3. JoinInMemory: Une en una tabla los dos pasos anteriores (como hacer joins in memory),
  4. ExpressionColumn: Calculamos los límites superior e inferior a partir del RIC 
El motivo por el cual no hacemos el cálculo de los cuartiles y el resto de cálculos estadísticos en una única sentencia, es por que para calcular el máximo, mínimo, media y desviación estándar es necesario que la cláusula Select tenga un Group By por oficina, mientras que la función percentile_disc que calcula los cuartiles no puede llevar group by.

Calculo de cuartiles


Para calcular los cuartiles utilizaremos la función Percentile_disc de SQL Server (Oracle también dispone de esta función aunque con palabras clave y opciones algo distintas. Con la siguiente sentencia calculamos los tres cuartiles (25%, 50% o mediana y 75%, así como la diferencia entre el primer y tercer cuartil (RIC), que utilizaremos en el cuarto paso para calcular los límites superior e inferior.

Select Distinct Oficina
  ,PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY TotalInscripcion) 
     OVER (PARTITION BY Oficina) AS Q1Cont  
  ,PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY TotalInscripcion) 
     OVER (PARTITION BY Oficina) AS MedianCont  
  ,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY TotalInscripcion) 
     OVER (PARTITION BY Oficina) AS Q3Cont  
  ,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY TotalInscripcion) 
     OVER (PARTITION BY Oficina) 
  - PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY TotalInscripcion) 
     OVER (PARTITION BY Oficina) As RIC
From InscripcionesCurso
Where Estado = 'RESERVA' or Estado = 'OVERBOOKING'

Cálculo de máximo y mínimo


El cálculo del máximo y el mínimo es necesario para calcular los límites superior e inferior del BoxPlot, y de paso calculamos otros cálculos estadísticos como la media o la desviación estándar que pueden darse como información adicional en el drill-down del gráfico.

Select Oficina
  ,Max(TotalInscripcion) as Maximo
  ,Min(TotalInscripcion) as Minimo
  ,Avg(TotalInscripcion) as Media
  ,Stdev(TotalInscripcion) as DesvSTD
From InscripcionesCurso
Where Estado = 'RESERVA' or Estado = 'OVERBOOKING'
Group By Oficina

Unión de la tabla

En el tercer paso unimos las dos tablas en una nueva mediante un InMemory Join, uniendo por los campos "Oficina".



Cálculo del limite superior e inferior


Finalmente con un paso tipo Expression column calculamos el límite inferior definido como el máximo entre el valor mínimo y la resta de 1,5 veces el RIC al primer cuartil, con la siguiente fórmula
iif([Q1Cont]-(1.5*[RIC])<[Minimo],[Minimo],[Q1Cont]-(1.5*[RIC]))

y el límite superior que se define como el mínimo entre el máximo valor y la suma de 1,5 veces el RIC al tercer cuartil.
iif([Q3Cont]+(1.5*[RIC])>[Maximo], [Maximo], [Q3Cont]+(1.5*[RIC]))

Definición del gráfico

Una vez tenemos la fuente de datos con toda la información necesaria, diseñaremos el gráfico, para ello crearemos dos series: Caja y Mediana


Para la caja elegiremos el tipo Vela que nos dará la caja y los bigotes, mientras que para la mediana elegimos el tipo Barra de Rango que permite dibujar una barra que empieza fuera del valor 0.



Ligar datos

Para ambas series, en la sección Ligar datos, elegiremos la oficina como argumento, lo que variará será la definición del valor, que en la serie Cajas definiremos, asignando al Bajo el campo Inferior, al Cierre el campo Q3Cont, al apertura el Q1Cont y al Mayor el campo Inferior.


Mientras que a la mediana, en ambos valores seleccionaremos el campo MedianCont, con lo que conseguiremos que nuestra barra quede limitada a una línea.


Vista Series

Finalmente, en el apartado vista de las series acabaremos de dar formato a nuestras series,  quitando la reducción y ajustando el grosor para la serie Caja


y ampliando la anchura a 0,5 en la serie mediana (o en su defecto hasta que coincida con el ancho de la caja).


Finalmente podemos quitar la leyenda para que no muestre información confusa



Leer más »

Conexión a MongoDB

Tal y como hicimos en un artículo anterior sobre la conexión de AtlasSBI a Vertica, esta vez vamos a explicar el como conectarnos a MongoDB, otro sistema de base de datos NoSQL.


Lo primero que tenemos que realizar es bajarnos el driver correspondiente para la plataforma Windows de MongoDB. En nuestro caso hemos optado por la solución que nos ofrece Progress, aunque existen más proveedores que ofrecen estos drivers como por ejemplo simba. Una vez descargados (32 y 64 bits) se instalan siguiendo los pasos del asistente, el cual no tiene complejidad ninguna.

Seguidamente tenemos que definir un DSN, el cual lo haremos a través del menú del driver dentro de inicio de Windows, eligiendo la opción de ODBC Administrator.





Si el SO fuera de 32 bits solamente haría falta la configuración en el ODBC de 32, y en caso de que el SO sea de 64bit, también la de 64. (Encontrarás más información sobre que tipo de conexión usa Atlas SBI en el artículo Driver ODBC sobre Windows 64 bits).

Seguidamente añadimos el origen de datos referente a MongoDB.



Para posteriormente configurarlo con los datos correctos de base de datos, dirección servidor y puerto de conexión. El usuario y el password lo pedirá a la hora de hacer 'Test Connect'.


Una vez realizada la configuración al ODBC de MongoDB correctamente nos tendremos que ir a AtlasSBI y crear la conexión para poder acceder a la base de datos.

Esta conexión  se configura de una manera muy simple tal y como se ve en la siguiente imagen:


Le damos un nombre y donde nos indica la Cadena de conexión ponemos el nombre que anteriormente le hemos dado en la configuración del ODBC detrás de la palabra DSN.

A partir de este momento ya podremos crear nuestros informes y controles y empezar a desarrollar consultas. 




Enlaces de interés:
  • AtlasSBI y Vertica: http://kbase.atlassbi.com/2018/04/atlas-sbi-y-big-data-conexion-vertica.html
  • MongoDB: https://www.mongodb.com/
  • Progress: https://www.progress.com/connectors/mongodb
  • Simba: https://www.simba.com/drivers/mongodb-odbc-jdbc/
  • Driver ODBC sobre Windows 64 bits: http://kbase.atlassbi.com/2012/02/driver-odbc-sobre-windows-64-bits.html



Leer más »

Sigle Sign-On (SSO) en Atlas SBI

En muchas ocasiones las empresas suelen utilizar el método de autentificación Single Sign-On para los empleados de toda la organización y así concentrar todo el acceso a máquinas y aplicaciones con una única credencial.


En esta entrada vamos a ver como configurar este método muchas veces utilizado en organizaciones.

Características a tener en cuenta

Atlas SBI tiene la posiblidad de implementar el método de acceso SSO, siendo la propia aplicación la que mantiene la seguridad y en consecuencia Windows solamente actúa para identificar al usuario.

Otras características necesarias para que todo funcione correctamente es la utilización para el acceso a Atlas SBI de los navegadores Chrome y IE (no Firefox) y que el servidor este integrado dentro del dominio.

Una vez tenidas en cuenta estas directrices, procederemos a explicar los pasos a seguir para completar la configuración en Atlas SBI del SSO.

Configuración SSO en AtlasSBI

Primero nos tendremos que ir a la aplicación de Atlas SBI  y simplemente se han de dar de alta los usuarios con el nombre de dominio de Windows, por ejemplo MIDOMINIO\nombre siendo "MIDOMINIO" el nombre del dominio y "nombre" el nombre del usuario.

Una vez realizado este paso tendremos que validar que tenemos instalada la autenticación de Windows en nuestro servidor web IIS.



Como podemos ver en la imagen anterior la autenticación de Windows está instalada pero no habilitada, así que procederemos a habilitarla dando click al botón derecho del ratón dentro de la directiva y seleccionando habilitar. 



Una vez habilitada  nos tenemos que ir a nuestra aplicación web (en nuestro caso Atlas SBI) y configurar SSO dentro del archivo web.config, responsable de fijar el comportamiento de nuestra aplicación web. 

Este archivo se encuentra normalmente en la ruta predefinida del servidor web IIS



Si abrimos este archivo (siempre en modo administrador, ¡muy importante!) tendremos que buscar la parte de autentificación y realizar un pequeño cambio en la directiva.



El texto resaltado es el responsable de fijar el modo de autenticación, así que procederemos a cambiar el modo por defecto y cambiarlo por el siguiente:

<authentication mode="Windows">
    <forms loginUrl="~/LoginForm.aspx" protection="All" timeout="120" />
</authentication>

Salvamos el documento y ya podremos acceder a Atlas SBI a través de SSO en nuestro navegador si necesidad de introducir ninguna credencial.




Leer más »

Atlas SBI y Big Data. Conexión a Vertica.

Bases de datos de Columnas

La irrupción del Big Data (termino que define volúmenes grandiosos de datos ya sean estructurados o no) ha hecho que soluciones de sistema de gestión de base de datos como la columnar hayan entrado en las organizaciones de manera cada vez más necesaria para conseguir tratar este gran volumen de información.



Las bases de datos que conocemos, pretenden reflejar la realidad mediante la representación de las relaciones entre las entidades que representan, y en consecuencia, se les llama relacionales. En este caso, la tabla representa una entidad, la fila un elemento concreto de esa entidad y las columnas atributos de ese elemento. Así pues cuando hacemos consultas en bases de datos muy grandes, estas tardan muchísimo tiempo en finalizar debido a la necesidad de conectar las relaciones entre las diferentes tablas que en la mayoría de los casos 'n' (tablas relacionadas con tablas que a su vez están relacionadas......).

Una base de datos columnar está optimizada para leer y escribir datos en columnas en lugar de filas. Esto implica que las consultas analíticas en este tipo de bases de datos sean notablemente más rápidas (hasta un 80% más, según las condiciones de datos e infraestructura) y que los requisitos de lectura/escritura en discos duros sean mucho menores.

Técnicamente, la manera cómo trabajan estos tipos de base de datos columnares NoSQL es que todas las relaciones son de grado 2 a diferencia del modelo relacional  de 'n' relaciones.

Vertica y Atlas SBI

En esta entrada vamos a explicar cómo conectarnos desde Atlas SBI a una base de datos NoSQL, en nuestro caso Vertica y los pasos a seguir para ello .



Lo primero que tenemos que realizar es bajarnos el driver correspondiente para la plataforma Windows de Vertica. Esto se hace desde la URL siguiente:

https://my.vertica.com/download/vertica/client-drivers/

Una vez descargado se instala siguiendo los pasos del asistente.

Seguidamente definiremos un DSN desde el menú de Herramientas Administrativas de Windows, eligiendo la opción Orígenes de datos ODBC 32, y en caso de que el SO sea de 64bit, también la de 64. (Encontrarás más información sobre que tipo de conexión usa Atlas SBI en el artículo Driver ODBC sobre Windows 64 bits)



Una vez ejecutada Crearemos un nuevo Origen de datos eligiendo el Driver ODBC de Vertica.


Para posteriormente configurarlo con los datos correctos de base de datos, dirección servidor, puerto de conexión usuario y password


Una vez realizada la configuración al  ODBC de Vertica correctamente nos tendremos que ir a AtlasSBI y crear la conexión para poder acceder a la base de datos.

Esta conexión  se configura de una manera muy simple tal y como se ve en la siguiente imagen:



Le damos un nombre y donde nos indica la Cadena de conexión ponemos el nombre que anteriormente le hemos dado en la configuración del ODBC detrás de la palabra DSN.

A partir de este momento ya podremos crear nuestros informes y controles y empezar a desarrollar consultas. 

Podéis ver el resultado final en este video:





Leer más »

Botón para ir a formulario de parámetros

En esta entrada vamos a ver como implementar un botón de acceso a un formulario de parámetros de un documento sin pasar por el enlace predeterminado de la vista.



A la hora de plantear un documento en AtlasSBI habrán muchas veces donde tengamos que introducir un parámetro general, del cual derivaran todos los resultados correspondientes a los controles usados. Un ejemplo dentro del cuadro de mando de una empresa seria el escoger un cliente (paso de parámetros) para posteriormente mostrarnos indicadores como 'Dashboard', 'Análisis OLAP', etcétera.

En la primera carga de este documento siempre mostramos un formulario donde la persona tiene que escoger el cliente.




Una vez validado el cliente ya dentro de nuestro documento si quisiéramos ir otra vez a este formulario lo haríamos a través del diálogo contenido en la parte superior derecha de la pantalla.



Una manera más fácil y visual es poner un botón en el documento que enlace directamente con la pantalla de introducción de parámetros.

Aplicación del botón

La manera más fácil y sencilla es insertar en el cuerpo html del documento el siguiente código.

<input type="button" value="Formulario Cliente" onClick="var nloc= location.href;location.href = nloc.replace('BIDocumentManager','BIParametersRequest');" style="width: 150px; height: 30px; background: #6699FF; color: #ffffff; cursor: pointer; border: 0px;" />

En el código podemos apreciar que hemos implementado un pequeño fragmento en javascript, que es el causante de enlazar con el documento de formulario de parámetros. En este código ejecutamos la función 'replace' que nos sustituye una parte de la URL para así poder acceder a la página del formulario de parámetros. 



Una vez grabado ya podemos disfrutar en nuestro documento de un acceso más rápido al formulario de parámetros, tal y como pudimos ver en la primera imagen de la entrada.
Leer más »

Abrir un documento en una pestaña concreta mediante URL

En ciertas ocasiones nos podemos encontrar en el escenario de tener en un control un enlace a un documento compuesto por diferentes pestañas. En el caso de ejemplo, desde el documento 'Análisis por paises' enlazamos a '360º del Cliente' compuesto por cinco pestañas.



En este artículo mostraremos como enlazar directamente a una pestaña del documento a través de la URL, conociendo como se construyen estas.

Mostrar submenú de pestañas en el enlace a documento 

Primero será necesario tener activada la casilla 'Usar la distribución en pestañas como...' dentro de 'propiedades' en el control de las pestañas dentro del documento que vayamos a enlazar, en este caso '360º del Cliente' para que los números de pestañas (cinco en este caso) estén dentro de la URL.


Abrir un documento en una pestaña concreta

Cuando enlazamos al documento podemos ver que que en la URL de este tenemos un número.



Si nos fijamos en la parte final de la URL de nuestro documento enlazado podremos ver que después del número de cliente tenemos '&BIGrInfoInd=0' . Esta parte final de la URL nos indica el numero de pestaña del documento. Si a esta parte final le ponemos por ejemplo el número 3, nos enlazará a la pestaña 'Anàlisi OLAP'.


En consecuencia si sabemos que tenemos 5 enlaces cambiando el número de 0 a 4 podremos acceder automáticamente a los documentos de una manera inmediata.

Este entrada es muy útil si queremos enlazar directamente a un documento con diferentes pestañas sin tener que pasar por el enlace.



Leer más »

Control de la impresión en un documento

En diversas ocasiones nos podemos encontrar que a la hora de imprimir un documento generado por AtlasSBI la configuración del navegador disponga la impresión de este sin respetar los controles de nuestros documentos y en consecuencia queden cortados.


Seguidamente vamos a mostrar que pasos seguir para que esto no ocurra.

Generación del salto de impresión

El primer paso será encontrar el control de nuestro documento para poder corregir su impresión.



Una vez encontrado implementaremos el código que mostramos a continuación.

<div style='page-break-before: always;'></div>




En este código estamos indicando que haga un salto de impresión antes del 'div' indicado y en consecuencia lo hará antes del control a corregir.




Finalmente, vemos como a la hora de la impresión nos hace correctamente el salto de página en el control deseado.

Fuentes consultadas: W3schools
Leer más »

Utilización de dos paneles en gráficos

Una de las utilizaciones de los gráficos es representar, en un mismo espacio, diferentes series. En ocasiones estas series no tienen la misma escala lo que dificulta la interpretación de la información.

Esto se aprecia en la imagen siguiente.



Podemos observar dos gráficos por separado (CPC y #Clicks), cada uno con su panel, y un tercer gráfico en donde integramos las dos series de los anteriores a través de un único gráfico con un único panel. Como se puede apreciar la visualización no es correcta debido a las diferentes escalas de las series y concentración de puntos y lineas.

Una alternativa para mejorar la lectura y compresión del gráfico sería representar cada una de las series en su propio panel.

Un panel es la zona de dibujo donde pintamos nuestro gráfico.

Si a este gráfico se le asignan dos paneles podremos apreciar en la siguiente imagen sin lugar a dudas que la información es mucho más limpia y aclaratoria que la anterior.



Para poder realizar este gráfico de dos paneles, empezaremos desde cero y seguiremos los siguientes pasos.
  • Selección de datos
  • Creación de un gráfico básico
  • Creación de paneles

¡Vamos a ello!

Selección de datos

Primero crearemos la consulta adecuada para poder representar las dos series que nos interesan. En nuestro caso a partir de datos de Google Adwords, representaremos las series de Coste por Click (CPC) y número de Clicks (Clicks) en el periodo de un año, dividido por meses.



El resultado de la consulta será el siguiente:


Creación de un gráfico básico

Una vez tenemos los datos correctos, abriremos el asistente de gráficos y añadiremos las dos series, una de nombre 'CPC' y otra de nombre '#Clicks' desde el apartado Series. En estas series tendremos que asignar el argumento y valores. Decir que el argumento tendrá que ser común en las dos series y lo único que cambiará serán el valor.

Esto se realiza desde el apartado Datos.



Por último asignaremos un tipo de gráfico a las dos series. En nuestro caso la serie  '#Clicks' la representaremos a partir de barras y la serie 'CPC' con lineas.

Estos pasos se realizan desde el apartado Series.


Creación de paneles

Una vez configuradas correctamente las series crearemos un nuevo eje de la Y y un nuevo panel. Este panel se le asigna un nombre por defecto, en este caso 'Panel1'. La creación de un nuevo eje de las Y se debe a la diferencia de escala entre las dos series. Hay que pensar que este nuevo panel tendrá tener los mismos elementos de cualquier gráfico, ejes de X e Y y los respectivos valores de su serie.

Estos pasos se realización desde el apartado Diagrama.


Asignación de los ejes

A partir de aquí tendremos que asignar los ejes de las X e Y a cada panel. El eje de la X es común a los dos paneles y el de las Y diferentes.

Esto se realiza desde el apartado Vistas de Series.



Seguidamente moveremos el eje de la Y del nuevo panel al lado izquierdo para su correcta visualización.

Esto lo haremos desde el apartado de Ejes.



Quitaremos peso al panel nuevo, para una mejor visualización. En este caso pasamos de 1 a 0.4.

Esto lo haremos desde el apartado de Paneles.



Por último eliminaremos la visualización del eje de las X en el 'Panel por defecto' para que no este duplicado.

Esto lo realizaremos desde el apartado de Ejes.



Ahora ya sólo nos quedará guardar el gráfico y dentro del control definir las dimensiones y activar el panel trasero si fuese necesario e insertarlo en el documento analítico.
Leer más »

Lo más visto