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.





dimarts, 26 de febrer del 2013

QlikView, Pruebas de conectividad con Teradata

Para realizar una prueba de conectividad entre QlikView y Teradata he utilizado la máquina virtual 'TD Express 14.0 with 4GB of storage' que esta disponible para descargar en la web de Teradata http://developer.teradata.com/. Es necesario registrase para descargar de forma gratuita esta imagen virtual.

Esta máquina virtual contiene una base de datos Teradata lista para funcionar con algún esquema pre-cargado para poder hacer pruebas.

El primer paso es descargar la máquina virtual y descomprimirla utilizando '7 Zip'. Cuando arranquemos la máquina virtual por primera vez, nos aparecerá un diálogo que nos preguntará si hemos copiado o movido la imagen virtual; debemos seleccionar 'Moved it'. La imagen virtual es un Linux donde esta instalada la base de datos, al arrancar la imagen nos pedirá un usuario y un password, debemos poner root en los dos.

Una vez arrancada la imagen virtual ya disponemos de una base de datos Teradata en  funcionamiento.  Para comprobarlo, vamos a echar un vistazo a los esquemas que tiene precargados. Para ello arrancamos Teradata Studio Express desde el icono del escritorio.

Ahora vamos a crear una nueva conexión con nuestra base de datos. En la ventana superior izquierda encontraremos una carpeta vacía con las 'Database Conection'.  Pulsamos el botón derecho y seleccionamos 'New'.


Seleccionamos 'Teradata Database' y le damos un nombre a la conexión, luego pulsamos 'Next'.



Para configurar la conexión, solamente tenemos que introducir localhost como database Server name y dbc como usuario y password. Para acabar presionamos 'Finish'.

Una vez ya tenemos la conexión creada, hacemos qlik con el botón derecho sobre la conexión y seleccionamos 'connect'.


Cuando se establezca la conexión, ya podremos navegar los distintos esquemas que contiene. Para este ejemplo vamos a utilizar el esquema 'retail'.


Ahora ya disponemos de una base de datos Teradata en una máquina virtual. El siguiente paso es conectar QlikView a la base de datos, para ello deberemos instalar el driver odbc de Teradata en la mima máquina donde tengamos instalado QlikView. Para esta prueba de conectividad solamente vamos a utlizar QlikView Desktop.

El primer paso será descargar el driver ODBC de Teradata (http://downloads.teradata.com/download/connectivity/odbc-driver/windows) desde la  web de Teradata. Este fichero zip contiene tres paquetes que tienen que instalarse en el orden correcto: TDICU, TDGSS y TDODBC. Si nos equivocamos de orden, hay que desinstalar y volver a instalar.

Con el ODBC instalado ya podemos configurar el una conexión ODBC. Para ello abrimos el ODBC Administrator.


Creamos un nuevo sistema DSN y configuramos la conexión con la dirección IP de la máquina virtual y con 'dbc' como usuario y password. Si no conocemos la dirección IP de la máquina virtual podemos utilizar el comando IFCONFIG desde una ventana de línea de comandos de la máquina Linux.




Ahora ya tenemos la base de datos y el driver ODBC, ya estamos en disposición de abrir nuestro QlikView y hacer una aplicación con los datos que almacena Teradata.

Arranco QlikView, creo un nuevo documento y lo guardo. Edito el script y voy a crear la conexión con Teradata. Selecciono una conexión de tipo ODBC y presiono 'Connect'.


Selecciono la conexión que acabo de crear y utilizo 'dbc' como usuario y password. Antes de presionar 'Ok', testeo la conexión para estar seguro de que todo va a funcionar.


Volviendo al script QlikView presiono 'Select' para ver los distintos esquemas.


Seleccionamos 'retail' como owner y ya podemos ver las tablas de este esquema. A partir de este momento el desarrollo se realiza como en cualquier aplicación QlikView. En mi caso he cargado todas las tablas y he creado este modelo de datos.


A partir de aquí crear el una aplicación de análisis es fácil. Para este ejemplo, QlikView tiene toda la información del modelo de datos en memoria; es decir se trata de una aplicación QlikView clásica. Mediante una nueva funcionalidad llamada Direct Discovery, existe la posibilidad de crear un modelo de daots mixto con datos en memoria y datos que se acceden directamente en las tablas de Teradata, pero esto lo dejamos para otro día.





dimecres, 20 de febrer del 2013

Algunos datos cuentan historias.


Para los que no conozcan Google Trends y de forma muy rápida, te permite saber en número de veces que se busca alguna palabra en Google y la evolución en el tiempo de esta búsqueda; es decir, te da una idea del interés que tiene la gente por algo.

Hace unos días se me ocurrió poner en Google Trends la palabra ‘corrupción’, limite la zona de interés a España y a los últimos 12 meses. El resultado fue este:

Pensé: 'Esta claro el caso Bárcenas ha hecho aumentar entre los españoles la preocupación por la corrupción'. Luego pensé que para ver realmente el interés de los ciudadanos era importante compararlo con algo y comparé la palabra 'corrupción' con la palabra fútbol  solamente en España y durante los 12 últimos meses.

Sorpresa!! Algunos datos nos cuentan cosas.