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 »

Creación de una ruptura en la serie de un gráfico

A la hora de representar un gráfico nos encontramos muchas veces en que los valores de la serie están descompensados, es decir, hay uno o varios valores muy superiores a los demás y a la hora de representarse en el gráfico su visualización no es la adecuada debido a que la escala es regular a todos los valores que se representan. Veamos un ejemplo.



Estos casos se pueden dar en muchos escenarios tales como el arriba mostrado recogiendo los motivos de llamada de una centralita o por ejemplo el origen de las visitas de una página web a través del lenguaje. En este último caso casi seguro que el 99% de las visitas serán del país de origen de la página, en nuestro caso España, y el otro porcentaje será de otros idiomas. Estos valores como se puede ver en el gráfico anterior se visualizan muy pequeños dado su peso mínimo en el gráfico.

En esta entrada vamos a aprender a como romper la serie para una visualización clara entre los valores de esta y así los valores con menor peso se visualicen de una manera mucho más clarificadora. El resultado en el caso de la centralita sería el siguiente.




La línea de ruptura enfatiza los valores menores y los muestra de una manera visible y clarificadora.

Ruptura de la serie

Una vez tenemos el gráfico creado y sus valores representados, tendremos que ir al apartado de Ejes y en las pestañas seleccionar Rupturas de Escala.



Seguidamente elegimos el eje a romper la escala, en nuestro caso el eje de las Y, ya que el gráfico ha sido invertido para mejor visualización y habilitamos la ruptura con un recuento máximo a escoger. Normalmente se le asigna un número lógico a los valores representados.



Esta linea de ruptura divide el gráfico entre los valores que haya mayor diferencia. Seguidamente lo exponemos en un ejemplo para mayor explicación.

Si tenemos tres valores que son 2, 5 y 15 la línea de ruptura la pondrá entre el 5 y el 15, pero si en cambio tenemos los valores 2, 9 y 12 la línea la pondrá entre el 2 y el 9.

Con esta simple acción ya podemos representar nuestro gráfico de una manera más clarificadora y visual.
Leer más »

Agrupación de los valores menores en un gráfico

Muchas veces cuando representamos un gráfico nos encontramos un gran listado de valores en el argumento y entre ellos muchos con muy poco peso dentro de la serie. Hay veces que estos valores al ser una gran número no se pueden visualizar de una manera correcta en nuestro gráfico o también podría ser que no fuesen importantes para nuestra información. Veamos un ejemplo.



Una posibilidad que tenemos para hacer que este gráfico sea mucho más visible y clarificador es agrupar estos valores en un único valor para representarlos. Veamos ahora como quedaría si los agrupáramos en un valor de nombre 'Otros'.



Seguidamente vamos a mostrar que acciones llevar a cabo en Atlas SBI para obtener este resultado.

Agrupación de valores

Una vez tenemos nuestro gráfico correctamente creado, iremos al apartado de Series e iremos a la pestaña 'Opciones Mejores X'.



Una vez dentro de esta pestaña, la habilitaremos y escogeremos el modo de agrupación que queremos aplicar. Existen tres.
  • Recuento. Muestra los n primeros argumentos del gráfico, agrupando el resto a partir del valor indicado
  • Valor umbral. Actúa sobre el valor asociado al argumento y muestra todos aquellos argumentos cuyo valor sea superior al número indicado.
  • Porcentaje umbral. Actúa también sobre el valor asociado al argumento, pero en este caso muestra todos los argumentos cuyo valor porcentual sobre el total sea superior al número indicado, es decir, si indicamos 2, mostrará todos aquellos argumentos cuyo valor esté por encima del 2% y agrupará en un único elemento todos los que estén por debajo del 2%. 

En este ejemplo agruparemos por 'Recuento' indicando como recuento el valor 9,  es decir, mostrará los primeros nueve países y agrupará del 10º hasta el final. Por último indicaremos que este valor resultante de la agrupación tenga como nombre 'Otros'.



Con esta simple acción ya podemos representar nuestro gráfico de una manera más clarificadora y visual.
Leer más »

Utilización de plantillas HTML en Documentos analíticos

Podemos ahorrar mucho tiempo en la elaboración de los Documentos analíticos utilizando plantillas de HTML predefinidas. Dichas plantillas pueden contener la estructura básica del informe, con el logo de la empresa, archivos de hojas de estilo o librerías de JavaScript.

Otra de las ventajas de utilizar plantillas, es que si queremos realizar algún cambio de diseño que afecte a los Documentos analíticos que hemos creado, realizando los cambios en la plantilla afectará a todos los documentos que la utilicen y no será necesario que pasemos documento por documento a realizar las correcciones

Creación de la plantilla
Para crear la plantilla, pulsaremos el botón Nuevo en la sección Plantillas HTML del grupo Entorno de la pestaña Proyecto, y asignaremos el nombre y la descripción tal como haríamos con cualquier otro elemento de Atlas SBI.

En la sección Diseño HTML crearemos la estructura HTML que queramos que tenga nuestro documento, recordando, eso sí, que ha de tener el <form> </form> como aparece en el diseño de los Documentos Analíticos que creamos tradicionalmente.

Por supuesto, podemos añadir imágenes o archivos css o JavaScript que hayamos cargado previamente como Recursos de Atlas SBI

Definicion Plantillas Atlas SBI

Una vez tengamos nuestra estructura básica, en los lugares donde queramos añadir nuestros controles, arrastraremos un Elemento HTML tipo PlaceHolder (ver imagen) y le asignaremos un nombre.

Podemos añadir tantos como necesitemos y todos han de estar dentro de las etiquetas <form> </form>.

Utilización de la plantilla
Para utilizar la plantilla en un documento analítico, simplemente deberemos elegir la plantilla a utilizar en el combo Plantilla HTML del documento.

Utilización de plantillas en Documentos Analíticos de Atlas SBI


Seguidamente borraremos el contenido del documento HTML y desde la pestaña Elementos HTML, arrastramos TODOS los elementos Content definidos, que corresponderán a cada uno de los elementos PlaceHolder que definimos en la nuestra plantilla.

Finalmente, dentro de cada una de las etiquetas Content podemos añadir controles o código HTML a nuestra elección.

Leer más »

Convertir entero en hh:mm:ss

Cuando se trata de medir tiempo, por ejemplo el tiempo que se tarda en resolver una incidencia, o el tiempo que se tarda en contestar una llamada, por regla general los valores se guardan en segundos.

De la misma manera, calculamos la diferencia entre dos horas, el resultado lo obtendremos en segundos. 

Sin embargo, en muchos casos, nos encontraremos ante la necesidad de mostrar un número entero en segundos con un formato tipo  'hh:mm:ss' 

Para lograrlo recurriremos a la función DateAdd, aunque también es posible obtener el mismo resultado con la función Cast.

Mediante DateAdd
La finalidad de esta función de SQL Server es la de añadir un intervalo de tiempo a un valor con formato fecha. Aunque también nos permite generar a partir de un valor numérico (int) un valor de tipo fecha (date), y puede resultar de gran utilidad en escenarios donde necesitamos generar datos aleatorios en ese formato.

La sintaxis de la función es la siguiente:

DATEADD (datepart , number , date )

Siendo datepart (yyyy, m, d, h, s...) la parte de la fecha (date) donde se agregará el valor numérico entero (number).

A continuación mostraremos un ejemplo donde sumaremos y restaremos 30 segundos a una fecha indicada y a otra sin especificar.



Mediante Cast

Aunque la función DateAdd nos facilitó la conversión que necesitábamos, también es posible obtener el mismo resultado mediante la función Cast, cuya sintaxis es la siguiente:

CAST (expression AS data_type [ (length) ])

Siendo expression cualquier expresión válida, data_type el tipo de datos de destino, y length un número entero opcional que especifica la longitud del tipo de datos de destino (el valor predeterminado es 30).

En el siguiente código podréis comprobar el uso de la función Cast junto a la función DateAdd. Para la primera fue necesario un cálculo previo.




Seguramente tendréis alternativas a este tipo de conversión. Desde aquí os animamos a que las compartáis con todos nosotros.


Podéis encontrar más información en:


Leer más »

Lo más visto