Mondrian JPivot by 34bz1w8I

VIEWS: 693 PAGES: 20

									   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
Bibliografía:
       HowTo Pentaho 3.5 & Cubo Mondrian en GNU/Linux – por Alvarez Sebastián Matias – 2009
       Pasos para crear Cubos con Mondrian Schema WorkBench – por Ing. Dennos Alba Infante para la
         comunidad Open Business Intelligence
       Mondrian 3.0.4 - Technical Guide - Developing OLAP solutions with Mondrian – 2009
       Mondrian Schema Workbench
       Pentaho Solutions - Business Intelligence and Data -Warehousing with Pentaho and MySQL – de
         Roland Bouman Jos van Dongen

WEB:
          http://mondrian.pentaho.org/documentation/schema.php
          http://assets.en.oreilly.com/1/event/2/Creating%20Interactive%20OLAP%20Applications%20with
           %20MySQL%20Enterprise%20and%20Mondrian%20Presentation.ppt#351,1,Diapositiva 1
          http://programacionbizarra.blogspot.com/2009/04/olap.html - Herramientas Libres para OLAP:
           Mondrian y JPivot Java


Módulo 2:
             Introducción a pentaho Analysis
                 o Mondrian
                 o WorkBench
                 o Jpivot – Análisis Ad-hoc
             Desarrollo de un cubo OLAP




       “La comunidad de código abierto se nutre de la participación y la cooperación. Hay
varios canales de comunicación disponibles donde las personas pueden ayudar, pero no
están obligados a hacerlo. Usted es responsable de su propio éxito, lo que requerirá
tiempo, esfuerzo y una pequeña cantidad de capacidad técnica. Si prefiere tener una
relación con un proveedor conocido que responderá a preguntas por teléfono, le ayudará
durante su evaluación y lo apoyará en la producción, por favor visite www.pentaho.com.”
(Pentaho Coporation)




 (esta documentaciión no es de producciión propiia siino recopiillaciión de lla
 (esta documentac ón no es de producc ón prop a s no recop ac ón de a
                        iinformaciión diisponiiblle)
                          nformac ón d spon b e)
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
HERRAMIENTAS

Bajo la integración de otros proyectos OpenSource que brindan funcionalidad en áreas de BI, la comunidad
PENTAHO trabaja en formalizar varias herramientas y formar el SUITE BI.

PENTAHO ANALYSIS SERVICE

PAS consiste de los siguientes 4 componentes:
      JPIVOT analisys en el front end: interface de usuario basada en Java.
      Mondrian ROLAP engine: motor OLAP, recibe queries MDX desde una herramienta en el front-end
         como JPIVOT, y responde enviando un result-set multidimensional.
      Shema Workbench: es una interface visual para diseñar y testear schemas de Mondrian. Mondrian
         usa Schemas para interpretar MDX y trasladar a queries SQL que pueda ser interpretado por un
         RDBMS.
      Agrégate Designer: una herramienta visual para analizar la performance y generar tablas
         agregadas.

Componentes OLAP en PENTAHO




(extraído de Pentaho Solutions - Business Intelligence and Data -Warehousing with Pentaho and MySQL)

Qué es OLAP?
(extraído de HEFESTO del Ing. Bernabeu Ricardo Dario)

OLAP suele ser el primer paso en el campo de la inteligencia de negocios en toda organización.

El procesamiento analítico en línea OLAP (On Line Analytic Processing), es la componente más poderosa del
Data Warehousing, ya que es el motor de consultas especializado del depósito de datos.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
Las herramientas OLAP, son una tecnología de software para análisis en línea, administración y ejecución de
consultas, que permiten inferir información del comportamiento del negocio.

Su principal objetivo es el de brindar rápidas respuestas a complejas preguntas, para interpretar la situación
del negocio y tomar decisiones. Cabe destacar que lo que es realmente interesante en OLAP, no es la
ejecución de simples consultas tradicionales, sino la posibilidad de utilizar operadores tales como drill-up,
drill-down, etc, para explotar profundamente la información.

Además, a través de este tipo de herramientas, se puede analizar el negocio desde diferentes escenarios
históricos, y proyectar como se ha venido comportando y evolucionando en un ambiente multidimensional, o
sea, mediante la combinación de diferentes perspectivas, temas de interés o dimensiones. Esto permite
deducir tendencias, por medio del descubrimiento de relaciones entre las perspectivas que a simple vista no
se podrían encontrar sencillamente.

Las herramientas OLAP requieren que los datos estén organizados dentro del depósito en forma
multidimensional, por lo cual es que utilizan los cubos multidimensionales.

Además de las características ya descritas, se pueden enumerar las siguientes:
    Permite recolectar y organizar la información analítica necesaria para los usuarios y disponer de ella
      en diversos formatos, tales como tablas, gráficos, reportes, tableros de control, etc.
    Soporta análisis complejos de grandes volúmenes de datos.
    Complementa las actividades de otras herramientas que requieran procesamiento analítico en línea.
    Presenta al usuario una visión multidimensional de los datos (matricial) para cada tema de interés del
      negocio.
    Es transparente al tipo de tecnología que soporta el DW, ya sea ROLAP, MOLAP u HOLAP.
    No tiene limitaciones con respecto al número máximo de dimensiones permitidas.
    Permite a los usuarios, analizar la información basándose en más criterios que un análisis de forma
      tradicional.
    Al contar con muestras grandes, se pueden explorar mejor los datos en busca de respuestas.
    Permiten realizar agregaciones y combinaciones de los datos de maneras complejas y específicas, con
      el fin de realizar análisis más estratégicos.

Reporte de análisis OLAP en JPIVOT:




Bases de Datos OLAP
(extraído de “Herramientas libres para OLAP” de Héctor Francisco Hernández)

Aunque existen muchas herramientas de generación de informes que operan sobre las bases de datos de los
sistemas transaccionales, suelen ser lentas.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
Los diseños de estas bases de datos están pensados para realizar altas, bajas y modificaciones de la forma
más óptima, teniendo un mínimo grado de redundancia de información posible. Esto significa que se tiende a
la normalización.

Sin embargo la normalización puede hacer lentas las consultas complejas, ya que al estar la información
distribuida en muchas tablas es necesario calcular productos cartesianos complejos (en sql "inner join", "outer
join", el operador coma) y en gran cantidad. Este tipo de operaciones es de los más costosos para el motor
de base de datos.

Cuando las consultas implican cruzar varias tablas de decenas o cientos de miles de registros, el sistema no
responde satisfactoriamente. Además de tardar varios minutos en presentar la información, se consumen
recursos haciendo más lento y degradando el servicio prestado por el sistema a los otros usuarios en línea.

La solución adoptada consiste en extraer, tranformar y cargar (ETL: Extract, Transform and Load) los datos a
una base exclusiva para OLAP. Si bien las bases de datos relacionales, u orientadas a objetos en los sistemas
más recientes, son las utilizadas comunmente en las aplicaciones OLTP, en el mundo OLAP las bases de datos
impuestas son las multidimensionales.

Conceptualmente, una base de datos multidimensional utiliza la idea de "cubos". Un cubo posee N
dimensiones y en él están registrados "hechos" de un determinado tipo. Los hechos podrían ser, por ejemplo,
desde las ventas realizadas por una empresa (según estudios la utilización de OLAP para el analisis de ventas
es la aplicación más popular) hasta los defectos que reportan los usuarios de un sistema informático, según
cuál fuese la finalidad de la aplicación.

Cada "hecho" tiene asociado un elemento de cada dimensión definida para el cubo. Por ejemplo, si el cubo
registra ventas, cada venta tiene asociado un lugar geográfico (dimensión geográfica), el día en el que ocurrió
(dimensión temporal), el producto que se vendió (dimensión de tipo), etc.

Además el "hecho" tiene valores asociados, por ejemplo el importe por el cual se realizó la venta o la cantidad
de unidades vendidas.

Poseyendo estos tres elementos, a saber, un tipo de hecho, un conjunto de dimensiones y un conjunto de
valores, queda conformado un cubo capaz de responder preguntas como cuántas ventas de determinado
artículo se realizaron en el mes de febrero, o cuál es el producto más vendido del trimestre pasado en la
ciudad de Córdoba.
Para consultar estos datos al cubo se necesita una herramienta fundamental. Así como existen lenguajes de
consultas en los otros paradigmas de bases de datos (SQL), para las bases multidimensionales el lenguaje es
MDX: MultiDimensional eXpressions.

Aunque no es un estándar, sino más bien una especificación propietaria de Microsoft, ha sido adoptada por
una amplia gama de compañías en diversos productos, entre los que se incluyen Applix, Microstrategy, SAS,
SAP, Whitelight, NCR, Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology,
Crystal Reports, Microsoft Excel, Microsoft Reporting Services, etc.


Un ejemplo de consulta MDX es la siguiente:


       SELECT

        { [Measures].[Importe] } ON COLUMNS,
        { [Tiempo].[2002], [Tiempo].[2003] } ON ROWS
       FROM Ventas
       WHERE ( [Sucursal].[Zona Oeste].[Tablada] )


Esta consulta obtiene como resultado un reporte OLAP, con los totales de las ventas realizadas por una
sucursal llamada "Tablada" de una cadena de mercados mostrando los años 2002 y 2003 en el eje vertical.

MONDRIAN

La última versión de Mondrian y su documentación se encuentra en http://mondrian.pentaho.org/.

De una manera similar a un ORM (por ejemplo Hibernate en Java), que permite emular una base de datos
orientada a objetos a partir de una relacional, Mondrian nos permite emular una base multidimensional.
Permitiéndonos así realizar consultas en lenguaje MDX, pensando en términos de cubos, hechos, dimensiones
y valores en lugar de tablas, registros y campos.
    INTRODUCCIÓN A PENTAHO BI SUITE 3.5
    COMMUNITY EDITION
Mondrian está compuesto por un conjunto de archivos "jar", que proveen una API inspirada en JDBC pero
diseñada para trabajar con una base multidimensional. El sistema necesita que escribamos en un archivo
"xml" cómo se corresponden los elementos de esta base con la base relacional.

La base relacional debe ser diseñada cuidadosamente de modo que sobre ella se pueda hacer el mapeo. Las
estructuras comunmente usadas son tres:

   Una única tabla para el cubo donde existe un registro por cada hecho (por ejemplo, un registro por cada
    venta). El registro tendrá un código único, un campo o más por cada dimensión y un campo por cada
    valor del hecho (un campo con el importe de la venta, otro con la cantidad de artículos vendidos, etc.).

   Una estructura de estrella. Con una tabla central de hechos donde está el código único del mismo y los
    valores correspondientes, y varias tablas periféricas, una por cada dimensión. Los registros de la tabla
    central se relacionan con los registros de las tablas periféricas de un modo "muchos a uno", por lo tanto
    la tabla central posee además una clave foránea por dimensión.




           Una estructura de copo de nieve. No muy alejada de la estrella, pero busca quitar relaciones de la
                                           tabla central para ahorrar espacio.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
¿Cómo funciona mondrian?
(extraído de “Análisis del estod de Mondrian” de Javier Giménez para Stratebi)

Mondrian es un motor ROLAP con caché. ROLAP significa que en mondrian no residen datos (salvo en la
caché) sino que estos residen en una Sistema de Gestion de Bases de Datos externo.
Es en esta base de datos en la que residen las tablas que conforman la información multidimensional con la
que mondrian trabaja (los modelos en estrella de nuestros data marts por ejemplo). MOLAP es el nombre que
reciben los motores olap en los que los datos residen en una estructura dimensonal.




                                           (extraído de HEFESTO)

Mondrian se encarga de recibir consultas dimensionales (lenguaje MDX) y devolver los datos de un cubo, sólo
que este cubo no es algo físico sino un conjunto de metadatos que definen como se han de “mapear” estas
consultas expresadas utilizando conceptos dimensionales a sentencias SQL ya tratando con conceptos
relacionales que obtengan de la base de datos la información necesaria para satisfacer la consulta
dimensional.

Algunas de las ventajas de este modelo son:
        El no tener que generar cubos estáticos ahorrando lo que cuesta generarlos y la memoria que
           ocupan.
        La posibilidad de utilizar siempre los datos residentes en la base de datos, de forma que se
           trabaja con datos actualizados. Muy útil en entorno de BI Operacional.
        Pese a que tradicionalmente los sistemas MOLAP tienen una cierta ventaja de rendimiento, la
           aproximación híbrida de Mondrian, el uso de caché y de tablas agregadas, hace que se puedan
           obtener muy buenos rendimientos con él, sin perder las ventajas del modelo ROLAP clásico.

Flujo de ejecución de mondrian

Veamos para que quede más claro un ejemplo de un flujo de ejecución de una consulta MDX contra
mondrian:
   1. Un cliente (por ejemplo la interfaz web JPivot) lanza una consulta MDX contra mondrian, solicitando
       una serie de datos y hablando de concepto dimensionales (ej. “Quiero el gasto del ultimo año para
       todas las provincias”).
   2. Mondrian recibe la sentencia MDX (referida a un cubo en concreto) busca en sus metadatos (esquema
       de mondrian, un fichero xml que define cubos) que conceptos relacionales (tablas, columnas) se
       asocian con estos conceptos dimensionales. Busca si ya tiene esos datos en la caché (los obtiene muy
       rápidamente), si los tiene los devuelve a la interfaz, sino ejecuta el siguiente paso.
   3. Genera las sentencias SQL necesarias (mirando en su esquema con la definición del cubo) para
       obtener esos datos. (ej. Una consulta SQL que obtiene los nombres de todas las provincias, otra que
       obtiene los gastos asociados a cada provincia ya agregados, etc...)
   4. La base de datos ejecuta las sentencias SQL (paso que más tiempo consume del proceso) y devuelve
       los datos a mondrian.
   5. Mondrian almacena los datos recibidos en la cache (para agilizar posteriores consultas).
   6. Mondrian devuelve el resultado a la interfaz (al cliente que lo solicitó, por ejemplo JPivot).
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION




Tablas Agregadas

En el caso de que tengamos tablas agregadas en nuestro modelo en estrella (versión de las tablas de hechos
reducidas con el fin de acelerar las queries), mondrian es capaz de aprovecharlas decidiendo, a la hora de
crear las SQL que van a obtener los datos, a que tabla a de direccionar las queries para obtener la
información, tratando siempre que sea posible de utilizar las tablas agregadas para agilizar el proceso.

Veamos un ejemplo:
Disponemos de dos tablas de hechos, una básica con un millon de registros e información a nivel de día y una
versión agregada con información a nivel de mes y 20.000 registros (HECHOS y HECHOS_AGG).
Si el usuario lanza una consulta MDX que solicita la información de este cubo mondrian hará lo siguiente:
    1- Verá si tiene la información en la caché (opción más rápida)
    2- Ver si para el nivel jerarquico para el que piden los datos puede obtenerlos con una SQL contra la
         tabla HECHOS_AGG, si puede lo hace. (ej. La consulta pedía agregados para los 4 primeros meses).
    3- Si la sentencia MDX pedía información a nivel de día, mondrian obtendrá lo que pueda de la caché, lo
         que pueda de la tabla agregada y para los niveles de detalle irá a la tabla de HECHOS principal.

Para informar a mondrian de que tablas agregadas hay disponible hay dos opciones:
    1- Definirlas explicítamente (todas las que haya) en los metadatos (Esquema de mondrian con las
        definiciones de cubos).
    2- Utilizar una nomenclatura para los nombres de las tablas de forma que mondrian (con una reglas
        gramaticales que tiene definidas y que son customizables) pueda saber automáticamente que tabla
        agregada puede utilizar en cada caso.

Además se puede configurar una política de uso de las agregadas para que, en caso de que mondrian
disponga de varias opciones a la hora de satisfacer una demanda de datos, escoja la tabla agregada en
función de unos criterios (menos número de registros, menos tamaño en Bytes, etc...)

Caché

Como hemos visto, mondrian implementa una caché. El objeto de esta memoria intermedia es almacenar
información del cubo de forma que se pueda responder a queries (o partes de las queries) más rápidamente
no siendo necesario lanzar consultas SQL contra la base de datos.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
Mondrian, permite desactivar la caché (para entornos en los que el rendimiento no sea crítico pero si lo sea
disponer siempre del dato residente en la base de datos) y además (a partir de la versión 2.3) gestionarla de
un modo sofisticado, veamos.
Mondrian es capaz de limpiar areas determinadas de la caché. La utilidad de esto es aprovechar a la vez las
mejoras de rendimiento de la caché y la posibilidad de obligar a mondrian a volver a cargar una cierta área
de la caché con datos frescos (en caso de que un conjunto determinado de información haya cambiado).

¿Cómo diseñar un cubo en Mondrian ?
(extraído del manual de referencia Técnica de Mondrian)

Qué es un Schema?

Un esquema define una base de datos multi-dimensional. Contiene un modelo lógico, que consiste en cubos,
jerarquías, y los miembros, y una asignación de este modelo a un modelo físico.
El modelo lógico se compone de los constructores utilizados para escribir consultas en lenguaje MDX: cubos,
dimensiones, jerarquías, niveles, y los miembros.
El modelo físico es la fuente de los datos que se presenta a través del modelo lógico. Es normalmente un
esquema en estrella, que es un conjunto de tablas en una base de datos relacional.

Archivos de Schema

Los Schemas de Mondrian están representados en un archivo XML. Un esquema de ejemplo, que contiene
casi todos los las construcciones que aquí analizamos, se suministra como demo / FoodMart.xml en el
Mondrian
de distribución. El conjunto de datos para rellenar este esquema también se encuentra en la distribución.

En la actualidad, podemos crear un esquema es editar un archivo de esquema XML con una aplicación de
escritorio desarrollada en java, Schema WorkBench. La sintaxis XML no es demasiado complicada, así que
esto no es tan difícil usar si se desea un simple editor de texto para obtener un Schema

NOTA: El orden de los elementos XML es importante. Por ejemplo, <UserDefinedFunction> elemento tiene
que ocurrir dentro del elemento <Schema> después de todas las colecciones de <Cube>, <VirtualCube>,
<NamedSet> Y <Role> elementos. Si lo inserta antes de la primera <Cube> elemento, el resto del esquema
será ignorado.

Modelo Lógico

Los componentes más importantes de un esquema son cubos, medidas y dimensiones:
        Un cubo es un conjunto de dimensiones y medidas en un área determinada.
        Una medida es una cantidad que usted está interesado en lasu medición, por ejemplo, las ventas
          de unidades de un producto, o precio de coste de los artículos del inventario.
        Una dimensión es un atributo o conjunto de atributos, con la que se puede dividir las medidas en
          sub-categorías. Por ejemplo, usted podría desear para romper las ventas de productos por su
          color,
          el sexo del cliente, y el almacén en el que se vende el producto. Color, sexo, y las tiendas son
          todas las dimensiones.

Dimensiones, Jerárquías y Niveles

       Un miembro es un punto dentro de una dimensión, determinado por un conjunto específico de
        valores de atributos. La jerarquía de género tiene dos miembros ‘M’ y ‘F’. 'San Francisco', 'California'
        y 'EE.UU.' son todos los miembros de la jerarquía de la tienda.
       Una jerarquía es unconjunto de miembros organizados en una estructura para el análisis práctico.
        Por
        ejemplo, la jerarquía tienda consiste en el nombre de la tienda, ciudad, estado y nación. La jerarquía
        le permite formar subtotales: el sub-total de un estado es la suma de los subtotales de todas las
        ciudades de ese estado, cada una de ellas es la suma de los subtotales de las tiendas de esa ciudad.
       Un nivel es un conjunto de miembros que tienen la misma distancia a la raíz de la jerarquía.
       Una dimensión es unacolección de las jerarquías que se discriminan sobre el mismo atributo en la
        misma tabla de hechos (por ejemplo, el día en que se produjo una venta).
       Por razones de uniformidad, las medidas son tratados como miembros de una dimensión especial,
        llamado ‘Measures’.
  INTRODUCCIÓN A PENTAHO BI SUITE 3.5
  COMMUNITY EDITION
Un ejemplo:

1. Para obtener el XML de diseño lógico del cubo (hechos, dimensiones, medidas) usamos:
SCHEMA WORKBENCH
       a.   Descomprimir el zip (psw-ce-3.1.6.13364.zip) en el directorio pentaho/design-tools/schema-
            workbench
       b.   En el directorio pentaho/design-tools/schema-workbench/docs encontraremos documentación de
            referencia:
                 i. mondrian_technical_guide.pdf
                ii. schema_workbench.pdf

       c.   Configurar la conexión con el datasource:
                 i. Hay que configurar la conección a la BD, por lo que primero hay que asegurarse de tener
                    el jdbc correspondiente, en este ejemplo para PostgreSQL.
                ii. Copiamos el jdbc de la conosla administrativa, con el que creamos el datasources,
                    administration-console/jdbc/postgresql-8.4-701.jdbc3.jar al directorio pentaho/design-
                    tools/schema-workbench/drivers
               iii. Ejecutamos Schema Workbench:
                    pentaho/design-tools/schema-workbench/workbench.bat




      Testeamos la conexión y si está todo ok, Aceptamos.

       Las operaciones básicas a realizar son:
               Crear un schema
               Crear cubos dentro del schema
                    o Elegir una tabla de Hechos
                    o Crear dimensiones privadas del cubo
                    o Agregar medidas
               Crear dimensiones compartidas en el schema
                    o Editar jerarquías por default y elegir una tabla de dimensión
                    o Definir niveles de la jerarquía
                    o Opcionalmente, agregar más dimensiones
               Asociar dimensiones con cubos

       d.      Crear un Schema:
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




           i. Llamaremos al schema “guarani” y lo guardaremos en un archivo xml con ese nombre.




  e.   Crear un Cubo dentro del schema:




  Un cubo puede tener los siguientes atributos:
        Name: nombre del cubo usado en los queries MDX para reverenciarse al cubo. Debe ser
           único en el esquema.
        Caption: especifica un nombre a mostrar, usado por las interfases de usuario.
        Cache: controla si los datos traídos de la tabla de hechos permanecerán en cache.
        Enabled: controla si Mondrian cargará o ignorará el cubo.

           i. Eligiendo una tabla de hechos
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




  Los atributos de la tabla son:
           Schema: el schema de la base de datos que contiene la tabla. Cuando no es especificado,
              toma el schema por default.
           Name: nombre de la tabla de hechos.
           Alias: un alias para la tabla cuando se genere la sentencia SQL.

         ii. Añadir medidas




         El orden en que se creen las medidas es importante, dado que implícitamente la primera
         medida es la considerada como medida por default. De todas formas la medida por default
         puede ser modificada con una propiedad del cubo:
                 <Cube defaultMeasure=”ni”……..>
                  …..
                  <Cube>
         Los atributos de las medidas son:
                Name: es e l identificador que se usará en los queries MDX para refereirse a la
                   mdedia. Debe ser único en el cubo.
                Aggregator: el nombre de la función de agregación que se aplica sobre la medida.
                Column: el nombre de una columna de la tabla de hechos.
                formatStr ing: formato en el que se muestra la medida.
                Visible: indica si la medida se muestra en la interface de usuario.
                datatype: tipo de dato que queremos que retorne el MDX
                formatter: formato personalizado. Debe implementarse en la interface java
                   mondrian.olap.CellFormatter.
                caption: nombre a ser mostrado en la interface de usuario

         iii. Añadir Dimensiones
                 o Dimensiones propias del cubo: son dimensiones “privadas”, porque son sólo
                     conocidad dentro del cubo en que se definen y no pueden ser usadas fuera de él.
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




               Los atributos para las dimensiones son:
                            Name: es el nombre con el cual será referenciada la dimensión en el
                               MDX. Debe ser único dentro del cubo.
                            ForeignKey: es el nombre de una columna de la tabla de hechos del
                               cubo, que es la referencia a la primaryKey de la tabla de dimensión.
                            Type: Si la dimensión es el tiempo o una fecha, debe usarse
                               TimeDimension. Esto permite usar funciones relacionadas con estos
                               tipos de datos en el MDX. Para cualquier otro caso usar
                               StandarDimension.
                            usagePrefix: se aplica sólo para dimensiones privadas, para evitar
                               nombres duplicados.
                            caption: es el nombre a mostrar en el front-end (la interface de
                               usuario)

               o   Dimensiones del schema: son dimensiones “compartidas” y pueden ser
                   asociadas con múltiples cubos. Se recomienda el uso de dimensiones compartidas
                   sobre las privadas.




        iv. Añadir Jerarquías
               o Cuando se crea una dimensión, también se crea una nueva jerarquía al que debe
                    asociarse una tabla de dimensión.
               o Las cruces rojas en cualquier objeto, significa que hay un error. El detalle del error
                    aparece en el panel derecho, en la parte inferior al seleccionar el objeto con el
                    error.
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




        Los atributos de las jerarquías son:
                 Name: es el nombre usado en el MDX para referirse a la jerarquía. Debe ser único
                    dentro de la dimensión. Si no se pone un nombre, asumirá en de la dimensión y
                    esta será la jerarquía por default.
                 Caption: el nombre que será usado en la interface de usuario.
                 hasAll: indica si la jerarquía tiene un nivel “All” con un miembro “All”,
                    generalmente al tope de la jerarquía es agregado este nivel que incluye todos los
                    miembros.
                 allMemberName: si el hasAll esta habilitado, esta propiedad especifica el
                    identificador que será usado por el miembro “All”.Cuando no se escribe, este será
                    “All <nombre de la jerarquía>”
                 allMemberCaption: Si hasAll esta habilitado, esta propiedad puede ser usada para
                    especificar cómo se mostrará el miembro “All” en la interface de usuario.
                 allLevelName: es el nombre usado para referenciar al nivel “All” en el MDX.
                                                                                                     def
                    aultMember: nombre del miembro por default. Si no es especificado, el miembro
                    “All”será usado como miembro por default, si la jerarquía tiene un miembro “All”.
                    Si el miembro “All”no está especificado en la jerarquía y hasAll está deshabilitado,
                    el primer miembro del primer nivel en la jeraquía se usará como miembro por
                    default.
                 memberReaderClass: nombre de la clase que lee los miembros, si es que está
                    personalizada. Debe implementar la interface mondrian.rolap.MemberReader.
                 primaryKeyTable: puede ser usada para especificar el nombre de la tabla a la cuál
                    pertenecen los miembros de la jerarquía. Si no es especificada los miembros son
                    consultados de la tabla de la jerarquía. Esta puede quedar en blanco si se está
                    implementando un schema estrella. Es requerida cuando es esquema es “copo de
                    nieve”.
                 primaryKey: debe usarse para especificar el nombre de la columna que es primary
                    key de la tabla de dimensión en la jerarquía. Esta es la columna de la tabla de
                    dimensión que es referenciada por las filas de la tabla de hechos.

        v.       Añadir Niveles a la Jerarquía:
             o     Una vez creada la jerarquía, se deben definir niveles.
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




        Las propiedades de un nivel son:
           Name: nombre que es usado para referenciar el nivel en el MDX.
           Table: nombre de la tabla que contiene la columna dónde el dato de la dimensión es
              almacenado para el nivel. Esta es la situación normal en un esquema “estrella”. Necesita
              especificar una tabla en particular cuando el esquema es “copo de nieve”.
           Column: el nombre de la columna que representa el miembro que identifica el nivel.
              Este debe corresponderse con la tabla de nivel.
           Namecolum: nombre de la columna que contiene el nombre del nivel. Cuando no se
              especifica, es usado el valor de la propiedad name. Normalmente se deja en blanco.
           Parentcolumn: se aplica sólo a un tipo especial de jerarquía padre-hijo. Normalmente
              estará en blanco, pero si se cuenta con este tipo de jerarquía “parent-child”, se usa esta
              propiedad para especificar que columna hace referencia al miembro padre.
           Nullparentvalue: cuando nos encontramos con una relación padre-hijo, podemos usar
              este atributo cuales valores indican que miembro padre no existe. Quedará en blanco si
              no es una jerarquía padre hijo.
           ordinalColumn: esta propiedad sirve para indicar que columnas definen el orden de los
              miembros. Debería ser especificada si el orden natural de los miembros no se ajusta con
              el orden deseado, sino se deja en blanco. A veces puede especificarse esta propiedad
              con una columna cuyo tipo de dato es más adecuado para ordenar que la columna que
              provee los valores de los miembros.
           type: el tipo de dato de los valores de los miembros
           uniqueMembers: indica si todos los miembros en el nivel tiene valores únicos. Esta es
              siempre “verdadera”para el primer nivel (sin contar el nivel “All”) para cualquier
              jerarquía. Si sabe que la propiedad debe ser “verdadera” para cualquiera de los
              siguientes niveles, debe especificarlo, de esta forma, Mondrian generará más
              eficientemente los quieres SQL. No lo haga si no está 100% seguro de que los valores
              son únicos, porque puede causar resultados incorrectos.
           leveltype: si está en blanco se asumirá que es un nivel “regular”, que es correcto para la
              mayoría de las dimensiones. En las dimensiones del tipo TimeDimension se debe
              especificar un tipo de nivel específico: TimeYears, TimeQuarters, TimeMonths,
              TimeWeeks, y TimeDays, es este caso es necesario para poder hacer uso de las
              funciones date/time.
           Hidememberif: determina si un miembro estará oculto. Normalmente estará en blanco,
              lo que es equivalente a setear el valor “Never”. En este caso el miembro siempre se
              muestra.
           approxrowcount: número estimado de miembros en este nivel. Una buena estimación
              mejorará la performance.
           caption: nombre del nivel a ser mostrado en la interface con el usuario.
           captioncolumn: especifica que columna de los niveles en la tabla de dimensión se usará
              para presentar los miembros al usuario final. Cuando no es especificada, se usa el
              identificador del miembro (propiedad column)
           formatter: formato personalizado.

        vi. Uso de las Dimensiones Compartidas en el Cubo:
               o La asociación entre el Cubo y la dimensión compartida definida en el Schema, se
                    hace a través de las llamadas dimension usage.
INTRODUCCIÓN A PENTAHO BI SUITE 3.5
COMMUNITY EDITION




            Las propiedades son:
             Name: nombre que es usado para referenciar la dimensión en el MDX. Este nombre tiene
                que ser igual al de la dimensión compartida.
             Foreignkey: el nombre de la columna en la tabla de hechos que hace referencia a la
                primary key en la tabla de dimensión.
             Source: es el nombre de la dimensión compartida
             Level: se puede especificar un nombre de nivel de la dimensión compartida que se unirá a
                la tabla de hechos en el cubo. En un esquema “estrella’, estará en blanco.
             Caption: nombre a mostrar en la interface de usuario.


            vii. Uso de las Miembros Calculados:




XML del Schema:
<Schema name="guarani" measuresCaption="totales de guarani para araucano">
   <Cube name="guarani-araucano" cache="true" enabled="true">
     <Table name="ft_alumnos_arau" schema="guarani">
     </Table>
     <Dimension type="StandardDimension" foreignKey="idcarrera" name="unidad-carrera">
       <Hierarchy name="unidad_carrera" hasAll="true" primaryKey="idcarrera">
           <Table name="lt_carreras" schema="guarani">
           </Table>
           <Level name="unidad_academica" column="unidad_academica" nameColumn="nombre_unidad"
type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
           </Level>
           <Level name="carrera" column="nombre_carrera" nameColumn="nombre_carrera" type="String"
uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
           </Level>
       </Hierarchy>
     </Dimension>
     <Dimension type="StandardDimension" foreignKey="colegio_secundario" name="localidad-colegio">
       <Hierarchy name="localidad-colegio" hasAll="true" primaryKey="colegio" primaryKeyTable="lt_colegios">
           <Join leftKey="localidad" rightKey="localidad">
             <Table name="lt_colegios" schema="guarani">
             </Table>
             <Table name="lt_localidades_colsec" schema="guarani">
             </Table>
           </Join>
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
               <Level name="localidad" table="lt_localidades_colsec" column="nombre" type="String"
   uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
               </Level>
               <Level name="colegio" table="lt_colegios" column="nombre" nameColumn="nombre" type="String"
   uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
               </Level>
            </Hierarchy>
         </Dimension>
         <Dimension type="StandardDimension" foreignKey="cat_horas_trabajadas" name="trabajahs">
            <Hierarchy name="trabajahs" hasAll="true" primaryKey="categoria">
               <Table name="lt_horastrabajadas" schema="guarani">
               </Table>
               <Level name="categoria_hstrabajadas" column="descripcion" nameColumn="descripcion" type="String"
   uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
               </Level>
            </Hierarchy>
         </Dimension>
         <Dimension type="StandardDimension" foreignKey="tipo_ingreso" name="tipo_ingreso">
            <Hierarchy name="tipo_ingreso" hasAll="true" primaryKey="codigo_tipo">
               <Table name="lt_tipoingreso" schema="guarani">
               </Table>
               <Level name="tipo_ingreso" column="descripcion" nameColumn="descripcion" type="String"
   uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
               </Level>
            </Hierarchy>
         </Dimension>
         <Measure name="ni" column="cant_nuevos_inscriptos" aggregator="sum" caption="nuevos inscriptos"
   visible="true">
         </Measure>
         <Measure name="ri" column="cant_reinscriptos" aggregator="sum" caption="reinscriptos" visible="true">
         </Measure>
         <Measure name="egresados" column="cant_egresados" aggregator="sum" visible="true">
         </Measure>
         <CalculatedMember name="alumnos" formula="[Measures].[ni] + [Measures].[ri]" dimension="Measures">
            <CalculatedMemberProperty name="NUMERIC_TYPE" expression="Iif(Value &#62;
   0,&#39;style=green&#39;,&#39;style=red&#39;)" value="Numeric">
            </CalculatedMemberProperty>
         </CalculatedMember>
      </Cube>
   </Schema>

   Tópicos   no cubiertos en los ejemplos que pueden implementarse en MONDRIAN:
             Roles y control de acceso
             Dimensiones “copo de nieve”
             Formateo condicional
             Internacionalización
             Funciones definidas por el usuario

2. Publicar el cubo obtenido en Pentaho
   Tenemos que configurar un password en pentaho para publicar schemas, para ésto, modificamos el
   siguiente archivo:
   /pentaho/biserver-ce/pentaho-solutions/system/publisher_config.xml

   La siguiente entrada:
   <publisher-config>
   <publisher-password></publisher-password>
   </publisher-config>

   Y le agregamos la password deseada. Por ejemplo: <publisher-password>ana</publisher-password>
   Para que quede efectiva, subimos y bajamos el server.

   Después estaremos en condiciones de utilizar la operación del menú de Schema WorkBench “Publish”

3. Visualizar el cubo con Jpivot
   Si tenemos todo hecho y publicado, procedamos a navegar el cubo:
                         http://localhost:8080/pentaho
                         Nos logeamos con el administrador, “Joe”
                         En el menú herramientas actualizamos la cache de Mondrian.
                         Click en “New Analysis View”
                         Seleccionamos el esquema y el cubo que creamos.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
JPIVOT
(extraído de “ ” de Héctor Francisco Hernández)

Existen componentes y programas conocidos como "clientes OLAP", que trabajan con Mondrian, cuyo objetivo
es proporcionar una interfaz ("front" en inglés) "prefabricada" donde, con sólo introducir la consulta MDX, se
puede obtener los datos en una tabla navegable, imprimirlos, graficarlos y hasta exportarlos a una hoja de
cálculo. Entre estos programas se encuentra JRubik, una aplicación de escritorio programada con Swing, y
JPivot, que está implementada como un conjunto de tags JSP (tecnología web), por lo que es altamente
configurable y se integra bien con nuestras aplicaciones web.

JPivot viene integrado a Pentaho, y su licencia open source nos permite modificar según nuestras
necesidades. Es fácil cambiar el aspecto de la interfaz del navegador.




( Extraído de Hefesto )

Cabe aclarar que una consulta a un DW, generalmente consiste en la obtención de indicadores a partir de los
datos (hechos) de una tabla de hechos, restringidas por las propiedades o condiciones de los atributos que
hayan sido creados.
Las operaciones que se pueden realizar sobre modelos multidimensionales y que son las que verdaderamente
les permitirán a los usuarios explorar e investigar los datos en busca de respuestas, son:

        Modelo
 Multidimensional de
       Ejemplo
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
      Drill-down




      Drill-up




      Drill-across




      Roll-across




      Pívot




      Page




Visualizando Cubos de Mondrian con Jpivot

Después de publicar el cubo en el repositorio de soluciones de Pentaho se puede utilizar para construir
aplicaciones de análisis.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION
La consola de usuario del servidor de Pentaho BI ofrece la posibilidad de crear una vista de análisis, que es
esencialmente una cross table JPivot del top de un cubo de Mondrian, incluído en una de acción de Pentaho.

Para crear una nueva vista de análisis, haga clic en el icono de vista de análisis en la barra de herramientas o
en la página de área de trabajo inicial. Se le pide que elija un esquema, y dentro del esquema, de un cubo.




Después de elegir el esquema y el cubo y confirmar el cuadro de diálogo, una tabla dinámica aparece.
Inicialmente, los miembros de todas las dimensiones por defecto se muestran en el eje vertical, y la medida
predeterminada se muestra en el eje horizontal. Recuerde que, normalmente, el miembro predeterminado es
el miembro “All”, así que el resultado es una tabla con un solo valor al más alto nivel posible agregación.




Si lo desea, puede guardar la vista de análisis para su uso posterior, haga clic en uno de los iconos de
disquetes en la barra de herramientas de la Consola de Pentaho usuario. Se le pide que proporcione una
ubicación dentro del repositorio, así como un nombre.
   INTRODUCCIÓN A PENTAHO BI SUITE 3.5
   COMMUNITY EDITION




Al salvar el tabla dinámica, el estado de la tabla también se guardarán, lo que le permite recuperar un
punto de vista específico de los datos que se interese.

Drill y Navegación OLAP de JPivot

Ver la presentación.

								
To top