Ticout Outsourcing Center

Explotemos la Tecnología

Ticout Outsourcing Center - Explotemos la Tecnología

Activar la caché de Yellowfin

1. Introducción

Yellowfin, ofrece la característica de poner los reports en Caché, para poder incrementar el rendimiento en la ejecución de los informes. Para conseguir esto, usa la base de datos columnar que tiene Yellowfin. En estas páginas aprenderemos a configurar el repositiorio para poder hacer uso de esta característica.

2. La base de datos  Columnar de Yellowfin

Yellowfin incluye una base de datos columnar para incrementar el rendimiento de las consultas. Esta base de datos, también conocida como in-Memory, ya que almacena todos los registros en memoria, es usado para la cache. Es importante decir, que en algunos casos especiales en lugar de ganar rendimiento se puede perder.

2.1 Como funciona?

Una vista no es más que una consulta que define la vista, y recupera todos los datos para que puedan ser usados desde los reports.   Básicamente, los datos de la vista son almacenados en una nueva base de datos, de forma desnormalizada (dependiendo de los datos, esta base de datos puede ocupar más espacio en disco). Yellowfin InMemoryDb intenta comprimir los datos, en algunos casos esto funciona muy bien, sobre todo cuando tenemos muchos valores repetidos. Esto quiere decir que si una columna tiene la palabra manzana 100 veces, sólo almacenará una vez la palabra y las otras sólo serán referencias.

Las cadenas de texto de cierta longitud, serán almacenadas en una tabla lookup, por lo que cuando aparecen en los datos, pueden ser substituidos por su referencia. Esto como consecuencia, nos ofrece unos buenos ratios de compresión cuando las cadenas de texto se repiten con frecuencia.

2.2 Si la vista está en forma plana (desnormalizada), como nos ayuda?

Normalmente recuperar los datos desde una base de datos desnormalizada (tabla plana) es más rápido, esto ayuda en la generación de los reports. Los reports asociados con esta vista, se ejecutará ahora contra la tabla plana.

La memoria necesaria para almacenarlo en RAM, es parecido al espacio usado por las tablas que forman la vista, en el estado normalizado.

2.3 Cuanto espacio necesito asumir que me va ocupar

Generalmente, el espacio estimado para almacenar los datos en la tabla plana, es parecido al espacio usado por las tablas que forman la vista, en el estado normalizado.

3. Crear la caché en el repositorio

En este apartado vamos a presentar, todos los pasos necesarios para poder activar la caché en Yellowfin. Para poder seguir este manual sólo necesitamos tener instalado en nuestro sistema Yellowfin, en caso de no tener una versión instalada de Yellowfin, se puede poner en contacto con nosotros y le proporcionaremos una versión de evaluación.

3.1 Crear una conexión Columnar Db

El proceso, es muy parecido a crear una conexión como las que estamos acostumbrados a crear en Yellowfin. Como base de datos escogemos Columnar Db. Sólo tenemos que tener en cuenta dos cosas:

  • Marcar la casilla Writable a Si.
  • Aumentar el time out (tiempo finalizado)

La razón de marcar la casilla a writable si, es porque cuando asociemos la vista a una conexión de este tipo, lo que hace el sistema es coger todos los registros de la vista y guardarlos en la base de datos columnar de Yellowfin.

IMPORTANTE: Asegurarnos de que tengamos espacio en la unidad donde tenemos instalado Yellowfin.

Conexión ColumnarDb

Aumentar el tiempo de finalizado o time out, es porque cuando carguemos los datos de la vista a la base de datos columnar, el sistema no nos de un time out por inactividad, en ese caso no tendríamos los registros cargados.

Nota: En algunos casos nos puede interesar no tener límite de filas.

Conexión ColumnarDb

3.2 Edición de la vista

Si ya tenemos una vista creada, lo que haremos es copiar la vista sobre la que deseamos aplicar la Cache.

Una vez estamos en el modo de edición de la vista,  tenemos que indicar el periodo de cache de la vista, dicho de otra forma, cuanto tiempo queremos que mantenga la vista en cache. Por ejemplo vamos a indicar que la tenga 8 horas (ver imagen).

Edición de la Vista

Ahora ya podemos ir al paso 3, de edición de la vista. Se nos aparecerá una pestaña nueva que es la de Cache. Pulsamos encima de ella.

Edición de la Vista

El primer paso, es transferir la estructura de la vista a la cache. Para eso pulsamos encima de Create a cached copy of this view. Nos preguntará donde almacenar la vista, escogemos la conexión columnarDb que hemos creado en el paso anterior. Nos pedirá si se trata de una carga incremental o completa. Escogeremos completa en este ejemplo y si la carga la haremos de forma manual o programada. Es decir, cada cuando el sistema va a guardar de nuevo la vista junto con sus registros. Vamos a programarla para que se ejecute cada hora.

Edición de la Vista

Pulsamos el botón guardar y ahora tendremos que cargar los registros (la primera vez, las otras ya queda programado). Pulsamos en el enlace Populate Data Now. Este proceso puede tardar, dependiendo del número de registros y de la estructura de la vista. (Por eso lo de incrementar el time out de la Columnar Db) Para saber si ha terminado o no,  la carga podemos pulsar sobre el enlace Refresh Page. Cuando termina, veremos una pantalla como la siguiente:

Edición de la Vista

Para asegurarnos de que los datos han sido cargados correctamente, pulsamos sobre la pestaña datos, en ella tendríamos que ver los datos cargados. Una vez terminada la edición de la vista, la activamos.

Edición de la Vista

3.3 Activar la cache en los Reports

La cache en los reports, se asocia a nivel de subcategoría. La subcategoría es, la subcarpeta donde se guardan los reports. Vamos a editar las subcategorías (Administración-Generales-Categorías de Reporte) y nos aseguramos de que tengan habilitada la opción Mantener archivado el conjunto de resultados del reporte. Podemos indicar cuantos informes guardar a cache, ya que el sistema crea una cola FIFO La opción necesaria para activar la cache para los informes es:

Configurar subcategoria

3.3 Importar los Reports

Si ya tenemos reports creados tendremos que exportar sólo los reports. Para este proceso, escogemos como elemento a exportar los Reports. Seleccionamos aquellos que deseamos exportar.  En el siguiente paso, cuando nos indique las dependencias, deseleccionamos el origen de datos, la vista y la categoría (esta última la deseleccionamos si su destino es otro).

Proceso exportación

Una vez exportado, nos toca importar los informes. Vamos a la opción de importar y escogemos el fichero resultante de la exportación. Como origen de datos, escogemos la conexión sobre la que se basa la vista que tenemos en cache. Es decir, no la conexión Columnar Db, sino sobre la que se basa la vista que hemos copiado al momento antes de asociarle la Columnar Db. Como vista vamos a escoger, la vista que tiene asociada la Cache.

Proceso importaciónUna vez finalizado estos pasos, deberíamos tener activada la cache para la creación de los informes. Es aconsejable comparar rendimiento con cache activa y sin cache activa, ya que en algunos casos puntuales se pierde rendimiento en lugar de ganarlo.