dimecres, 27 de febrer del 2013

Direct Discovery con Teradata, primeros pasos.

En un post anterior conectamos QlikView con una base de datos Teradata y hoy vamos a probar una nueva funcionalidad llamada Direct Discovery,  que ha aparecido en la versión 11.2 de Qlik View.

Simplificando mucho, las aplicaciones QlikView están basadas en un modelo de datos 100% en memoria. Direct Discovery permite extender esta aproximación y crear un modelo de datos híbrido, donde una parte de los datos están en memoria y otra parte están en una base de datos.

Algunos casos de uso para esta funcionalidad podrían ser:

  • Ver información de detalle. Algunas aplicaciones QlikView podrían proporcionar información agregada y Direct Discovery podría facilitar el detalle.
  • Acceso a información histórica. Una aplicación podría tener 2 o 3 años de información en memoria y acceder a información histórica mediante Direct Discovery.
  • Presentar información reciente. una aplicación QlikView podría recargarse cada noche, pero se podría acceder a información más reciente mediante Direct Discovery.

Para más información sobre Direct Discovery ver este enlace.

El objetivo es crear una pequeña aplicación que nos permita testar Direct Discovery con una base de datos Teradata. Disponemos una máquina virtual con una base de datos y hemos configurado una conexión a esta base de datos. Estaa base de datos tiene un esquema de datos de ejemplo llamado retail que usaremos para nuestro test. El modelo de datos de nuestra aplicación será este:


La tabla 'CONTRACT' contiene todas las órdenes de compra y la tabla 'DirectTable' contiene el detalle de las líneas de estas órdenes de compra. Todo el modelo de datos estará en memoria a excepción de la tabla 'DirectTable' que estará en la base de datos y será accedida directamente.

El primer paso será crea una nueva aplicación QlikView y preparar la carga de las tablas que se almacenarán en memoria. Para ello, tal como hemos visto en un post anterior, abrimos una conexión ODBC contra Teradata y seleccionamos las tablas que queramos cargar; en este caso Contract, Client, Area, region y employee.



Ahora en el editor de scripts de QlikView ya tenemos el código para crear la parte in-memory del modelo de datos y nos falta el código para la parte en base de datos del modelo de datos. Para este código y en la versión 11.2 de QlikView tenemos una nueva sentencia 'DIRECT SELECT'.




Recargamos el modelo de datos y ya podemos empezar a construir nuestra aplicación. A modo de ejemplo voy a construir una aplicación con dos gráficas una con datos que vienen de 'CONTRACT?, una tabla almacenadaen memoria y otra con datos de la tabla 'DirectTable' que es accedida por QlikView directamente a la base de datos Teradata,


A la izquierda puede verse la expresión de la gráfica con datos en memoria y a la derecha la expresión de la gráfica con datos en tabla. Para finalizar la aplicación añado dos filtros que vienen de las tablas en memoria 'Region' y 'Area' y un filtro 'L_STATUS' que viene de la Direct Table; es decir de la tabla almacenada en la base de datos.


El resultado es una aplicación que contiene dos gráficas una, en verde, con datos que provienen de la parte del modelo de datos en memoria de QlikView y otra gráfica, en naranja, con datos que vienen de la tabla almacenada en la basede datos. los filtros Area y Region están en tablas en memoria, mientras que el filtro status viene de la tabla en base de datos.





Cap comentari:

Publica un comentari a l'entrada