La Azada

Software
La Azada (The Hoe)

Introducción a “La_Azada”

La Azada es un cliente olap desarrollado en Java/SWT(Eclipse RCP) y basado en Olap4j.

El cliente puede conectar a Fuentes de datos Mondrian, MS Analysis Server, etc... usando el protocolo XMLA soap. Las consultas Olap pueden realizarse usando el lenguaje MDX.

Sus principales componentes son: navegador olap, editor de consultas MDX, visor de tablas, menús, marcadores...

El editor de consultas MDX soporta resaltado de sintaxis y auto-completado de código MDX.

Principales URLs:

La Azada

Características

El sistema cuenta con una pequeña ayuda ilustrada (en español), que sirve como tutorial para adentrarse en las principales funcionalidades de la herramienta.

A los usuarios de jRubik les parecerá muy familiar la interfaz ya que constituye una evolución de ese proyecto, donde la diferencia más significativa en la interfaz está dada por el potente completamiento de código MDX en el editor; y en el background el uso de Olap4J para acceder a las fuentes de datos Olap (en lugar de la librería histórica y cuasi obsoleta, JPivot).

Sus principales funcionalidades se pueden resumir en:

  • Administración de fuentes de datos Mondrian y XMLA. El usuario puede definir múltiples fuentes de datos dimensionales, las cuáles podrá explorar haciendo uso de la aplicación.
     
  • Vista Descubridor. Esta permite inicializar un catálogo o cubo de datos, para comenzar a utilizar las opciones de navegación y edición de consultas MDX.
     
  • Vista Navegador. El usuario puede seleccionar con el ratón (arrastrando, soltando y pinchando) qué dimensiones, jerarquías y miembros se incluirán respectivamente en las columnas, filas y filtro. Permite construir una consulta básica que resuelve el 80% de las necesidades de análisis, excepto por aquellas que requieren el uso de funciones avanzadas permitidas por el lenguaje MDX.
     
  • Vista Editor MDX. Este es el principal aporte de la herramienta, por la funcionalidad de completamiento de código que incluye, donde no solo valida la sintaxis, sino que permite acceder a las funciones disponibles para parte de la consulta, e inclusive navegar iterativamente a través de los elementos que conforman una dimensión. También permite guardar una consulta y recuperar una consulta almacenada previamente en el sistema de archivos.
     
  • Vista Tabla. Esta vista refleja en cada momento la tabla resultante de la consulta que se ha elaborado (ya sea con el navegador o con el editor mdx), permitiendo expandir y contraer miembros para cambiar el nivel de detalle de los datos, como mismo estamos acostumbrados a hacer con JPivot y otros visores OLAP. Se puede hacer uso igualmente de una barra de herramientas para controlar la manera en que se interactúa con la tabla.
     
  • Vista Gráfico. Similar a la tabla, solo que muestra los datos en forma de gráfico (y el tipo de gráfico se puede cambiar a gusto).
     
  • Vista TreeMap. Muestra los mismos datos que la tabla y el gráfico, pero esta vez en forma de TreeMap, donde también se pueden cambiar algunos parámetros de visualización.
     
  • Vista Mis Consultas. Aquí los usuarios pueden almacenar sus consultas favoritas (tipo marcador o bookmark), de manera que pueden volver a ellas sin tener que pasar por el proceso de Inicializar el cubo y elaborar la consulta.

 

Errores (bugs) conocidos

Las versiones actuales de La_Azada contienen ciertos errores conocidos que limitan un poco su uso, aunque no llegan a imposibilitarlo para los desarrolladores (más tolerantes a los bugs que el usuario promedio).

El versión 0.8.1 encontramos como principales errores:

  • Mal funcionamiento de la administración de fuentes de datos. Para lidiar con él debe definirse manualmente la conexión en el archivo: ./workspace/catalogs/datasources.xml
     
  • En ocasiones se borra la consulta al ejecutarla dos veces consecutivas (sin modificaciones). La solución es ejecutar Ctrl+Z para volver a tener la consulta original (la respuesta sería la misma que ya estaba cargada en la tabla) 
     
  • Al detallar un miembro se desorganiza por completo la jerarquía, impidiendo que la navegación por la tabla sea posible para un usuario cualquiera. La mejor forma de lidiar con este error es no usar para
    nada la navegación por la tabla, y esperar a que lo arreglen en versiones posteriores.

En la versión 0.8.3 ya se han corregido los errores señalados anteriormente, pero en cambio olvidaron incluir la vista Navegador, que por ser una omisión tonta no cabe dudas aparezca reincorporada en las versiones sucesivas.
 

Importancia estratégica para los desarrollos BI

Las fuentes de datos dimensionales se encuentran en el núcleo de las soluciones BI actuales. MDX es el lenguaje de consultas empleados para acceder fuentes de datos, y ha sido dotado de posibilidades análiticas que permiten dar respuesta fácilmente a casi cualquier pregunta que se pueda hacer sobre los datos.

En los desarrollos de soluciones BI, muchas veces los desarrolladores prefieren usar el lenguaje de consulta para bases de datos relacionales (SQL) para acceder a los datos y dar respuesta a las preguntas de los usuarios. Sin embargo son muchas las razones que justifican el uso preferente de MDX y el desecho de SQL para acceder a los datos. Entre las más importantes tenemos:

  1. Simplicidad relativa de las consultas MDX respecto a SQL
     
  2. Mayor capacidad analítica para satisfacer consultas complejas
     
  3. Mejor desempeño general, por el uso de mecanismos como la caché de datos
     
  4. Protección de los datos garantizada por el servidor OLAP a nivel de cubo, dimensión, jerarquía, nivel y hasta miembro, dependiendo de los roles del usuario y los privilegios y restricciones asociados
     
  5. Independencia del sistema de gestión de bases de datos relacional utilizado, a la hora de elaborar las consultas.

Las razones 2 y 4 son quizás las que mayor peso tendrán para inclinarse definitivamente por MDX en lugar de SQL.

La mayor capacidad analítica puede no ser percibida a simple vista, pero sería muy fácil encontrar ejemplos donde se necesite calcular complejas fórmulas para evaluar una medida, que sencillamente serían inviables completamente usando SQL.

La protección de los datos va a permitir dar respuesta rápida a los requisitos de protección de los datos que muchas veces aparecen luego de que el proyecto está avanzado y se empiezan a ver resultados. Con el uso de MDX la protección se hace de manera declarativa y no obstruye ningún desarrollo previo (pues cuando el usuario no puede acceder a un nivel o miembro determinado de una dimensión, sencillamente el servidor no le permitirá llegar a él por ninguna vía). Sin embargo, usando SQL se deben crear mecanismos complicados y obstrusivos para cada consulta creada, que garantice el acceso autorizado a los datos.

La quinta razón es igualmente fundamental cuando se esperan cambios futuros en el sistema de gestión de bases de datos relacional (por ejemplo cuando se va de un prototipo Access a Mysql, y luego a PostgreSQL y luego a Oracle cuando el datawarehouse escala al infinito).

La principal barrera para la adopción de MDX como lenguaje de consulta para dar respuesta a los usuarios, es la falta de habilidad en diseño de los cubos de datos y quizás más en la construcción de las mismas consultas MDX. Sin embargo, es importante que todo desarrollador de soluciones BI conozca que:

  • MDX permite obtener los mismos resultados que SQL y más
  • Se puede usar MDX para construir reportes (usando Pentaho Reporting) al igual que se usan las consultas SQL
  • Se puede traducir un ResultSet MDX para que tenga la misma apariencia de un ResultSet SQL y así reutilizar cualquier solución que espera recibir los datos en el formato que devuelve normalmente un servidor relacional.
  • Empleando el mecanismo de las xaction de pentaho, se pueden usar resultados de consultas MDX para popular cualquier componente de un dashboard: gráfica, reporte, tabla y evidentemente vistas pivot.

Aunque en las últimas versiones de Kettle (Pentaho Data Integration) se puede usar MDX incluso para leer datos en una transformación, parece más apropiado seguir usando SQL en estos casos y dejar las consultas OLAP para presentar resultados a los usuarios (a menos que tengamos expresamente un servidor OLAP como fuente de datos primaria).
 

Conclusiones

La_Azada es un buen cliente OLAP de escritorio, multiplataforma y con posibilidades de seguir mejorando, que nos va a permitir explorar las fuentes de datos dimensionales disponibles en la red, y almacenar las consultas que por su importancia deberán ser consultadas sistemáticamente.

Desde el punto de vista de un desarrollador, la potencialidad de su editor de consultas va facilitar considerablemente la confección de consultas MDX complejas, que luego podrán usarse para construir un reporte, poblar un componente de un dashboard o inicializar una vista Pivot.

La consulta MDX por sí sola no constituye la solución total al problema de acceso a los datos, ya que en la práctica deberá personalizarse para incluir los efectos de los parámetros seleccionados por el usuario. Sin embargo, esta versión estática va a permitir hacerse una idea del resultado que obtendremos y de la forma general que deberá tener la consulta.