Open Business Intelligence

La red del Business Intelligence

Crear un cubo a partir de dos tablas de hecho con Mondrian

Hola estimados buenos días,

Recientemente me ha llegado un requerimiento donde el modelo dimensional contiene 2 tablas de hechos + 3 dimensiones las cuales son compartidas entre ambas tablas de hechos (nada fuera de lo común). Lo que yo necesito es poder consultar con jpivot o MDX métricas de ambas TH al mismo tiempo. Al estar trabajando con Mondrian, schema workbench al crear el cubo sólo me permite seleccionar una sola tabla de hechos, por lo cual debería generar 2 cubos con sus dimensiones compartidas. Con otros motores OLAP si he podido generar sin mayor dificultad un solo cubo a partir de 2 o más tablas de hechos.

Mi pregunta es la sgte, es posible hacer lo mismo con Mondrian? No soy experto con este motor OLAP, por lo tanto no estoy seguro si me conviene generar una vista a partir de mis dos TH o si puedo hacer mi cubo con ambas TH. La granularidad de ambas difiere a nivel Tiempo, una es semanal y la otra mensual.

Espero se entienda mi idea, y si alguien experimentó lo mismo me sería muy util saber cómo lo resolvió, ya que soluciones siempre hay más de una.

Muchas gracias!

Visitas: 4636

Responde a esto

Respuestas a esta discusión

Para este caso que comentas con la herramienta Pentaho Schema Workbench tendrias que generar 2 cubos con dimensiones compartidas y luego a apartir de esos cubos generar un cubo Virtual que corresponde a la Union de estos Cubos a traves de las Dimensiones que comparte. Es decir el Tercer Cubo es un Cubo Virtual que se apoya en los 2 cubos Creados previamente enlazados por las dimensiones que poseen en comun.

Hola Alberto,

Muchas gracias por tu rpta. Lo intentaré y luego les comento cómo salió.

Saludos!

alberto garcia dijo:

Para este caso que comentas con la herramienta Pentaho Schema Workbench tendrias que generar 2 cubos con dimensiones compartidas y luego a apartir de esos cubos generar un cubo Virtual que corresponde a la Union de estos Cubos a traves de las Dimensiones que comparte. Es decir el Tercer Cubo es un Cubo Virtual que se apoya en los 2 cubos Creados previamente enlazados por las dimensiones que poseen en comun.



Hola , lei tu comentario y me intereso porque tengo que crear cubos virtuales para reslver un problema

No tengo mucha experiencia asi que me aydaria mucho si me explicas un poco mas como hacer estos cubos virtuales

saludos

Hola Jorge buenas tardes,

 

La verdad fue más fácil de lo que creí y anduvo de lujo. El único problema que tuve fue que al generarlo desde schema workbench me fallaba y no podía abrir jpivot, asi que busqué la guia técnica de Mondrian y me fijé cómo es la sintaxis XML para generarlo, abrí mi archivo del schema y lo agregué al final siguiendo como ejemplo el de la guia. Aquí te dejo la sintaxis de ejempo:

 

<VirtualCube name="Warehouse and Sales">
<CubeUsages> <CubeUsage cubeName="Sales" ignoreUnrelatedDimensions="true"/>
<CubeUsage cubeName="Warehouse"/>
</CubeUsages>
    <VirtualCubeDimension cubeName="Sales" name="Customers"/>
    <VirtualCubeDimension cubeName="Sales" name="Education Level"/>
    <VirtualCubeDimension cubeName="Sales" name="Gender"/>
    <VirtualCubeDimension cubeName="Sales" name="Marital Status"/>
    <VirtualCubeDimension name="Product"/>
    <VirtualCubeDimension cubeName="Sales" name="Promotion Media"/>
    <VirtualCubeDimension cubeName="Sales" name="Promotions"/>
    <VirtualCubeDimension name="Store"/> <VirtualCubeDimension name="Time"/>
    <VirtualCubeDimension cubeName="Sales" name="Yearly Income"/>
    <VirtualCubeDimension cubeName="Warehouse" name="Warehouse"/>
    <VirtualCubeMeasure cubeName="Sales" name="[Measures].[Sales Count]"/>
    <VirtualCubeMeasure cubeName="Sales" name="[Measures].[Store Cost]"/>
    <VirtualCubeMeasure cubeName="Sales" name="[Measures].[Store Sales]"/>
    <VirtualCubeMeasure cubeName="Sales" name="[Measures].[Unit Sales]"/>
    <VirtualCubeMeasure cubeName="Sales" name="[Measures].[Profit Growth]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Store Invoice]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Supply Time]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Units Ordered]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Units Shipped]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Warehouse Cost]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Warehouse Profit]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Warehouse Sales]"/>
    <VirtualCubeMeasure cubeName="Warehouse" name="[Measures].[Average Warehouse Sale]"/>
    <CalculatedMember name="Profit Per Unit Shipped" dimension="Measures"> <Formula>[Measures].[Profit] / [Measures].[Units Shipped]</Formula>
    </CalculatedMember>
</VirtualCube>

Espero te sirva de ayuda.

Saludos!

gracias  si me sirvió de mucho

hola, que tal Roque Salde 

no tengo mucha experiencia sobre BI

y actualmente estoy trabajando sobre un proyecto. mi base de datos transaccional se rompia el modleo estrella por la fecha que iba en la tabla de echo. entonces lo que hice fue que con DATA-INTEGRATION separo la fecha y creo mi DatawereHouse y la coloco en otra tabla, para que el modelo de la base sea en estrella.

 

el diagrama de mi base es el siguiente

si te fijas, la tabla de echos es sucursal_ventas.

de ahi esta relacionada con sucursal_ventas_detalle

y esta a su vez con sucursal_productos

lo que estoy tratando de hacer en el schema worbench es un esquema que por ejemplo al seleccionar una sucursal me muestre lo que vendió en monto(ESTO YA LO LOGRE)

pero de ahi si quisiera ver los productos y la cantidad que me los muestre (ESTO ES LO QUE NO E PODIDO LOGRAR AUN)

en saiku cuando deseo ver los productos solo me salen 2. pero si sleecciono el filtro me salen todos los productos. pero en la tabla que se genera siempre me salen solo 2

este es mi schema de workbench

si me pudieras orientar, te lo agradecería bastante.

ya llevo 2 semanas tratando de solucionarlo

Hola Jorge David cómo estás?

Estuve revisando el modelo que enviaste y tengo una duda, la Tabla de Hechos es sucursal_ventas_detalle o la relación entre sucursal_ventas y sucursal_ventas_detalle? Lo que deberías hacer es una sola tabla con los datos de ambas, métricas y claves foráneas a las dimensiones (cliente, sucursal,tiempo,producto). De esa forma Mondrian debería responder sin problemas y traerte todo el detalle.

Si lo que has hecho es lo que te sugiero y sigue sin funcionar entonces el problema está en el schema de mondrian, si podés adjuntalo así lo reviso en detalle y te comento qué encuentro.

Saludos!

jorge david mendoza jimenez dijo:

hola, que tal Roque Salde 

no tengo mucha experiencia sobre BI

y actualmente estoy trabajando sobre un proyecto. mi base de datos transaccional se rompia el modleo estrella por la fecha que iba en la tabla de echo. entonces lo que hice fue que con DATA-INTEGRATION separo la fecha y creo mi DatawereHouse y la coloco en otra tabla, para que el modelo de la base sea en estrella.

 

el diagrama de mi base es el siguiente

si te fijas, la tabla de echos es sucursal_ventas.

de ahi esta relacionada con sucursal_ventas_detalle

y esta a su vez con sucursal_productos

lo que estoy tratando de hacer en el schema worbench es un esquema que por ejemplo al seleccionar una sucursal me muestre lo que vendió en monto(ESTO YA LO LOGRE)

pero de ahi si quisiera ver los productos y la cantidad que me los muestre (ESTO ES LO QUE NO E PODIDO LOGRAR AUN)

en saiku cuando deseo ver los productos solo me salen 2. pero si sleecciono el filtro me salen todos los productos. pero en la tabla que se genera siempre me salen solo 2

este es mi schema de workbench

si me pudieras orientar, te lo agradecería bastante.

ya llevo 2 semanas tratando de solucionarlo

gracias por responder.

la tabla de echos es sucursal_ventas.

que tiene relacion con sucursal_ventas_detalle

en la tabla sucursal_ventas_detalle esta lo que contiene esa venta dentro de esta esta el id de producto

que el nombre esta en sucursal_productos

Hola Jorge cómo estás?

Bien, entonces lo que deberías hacer es una tabla que unifique sucursal_ventas y sucursal_ventas_detalle, la cual va a tener el id_producto, id_sucursal, id_tiempo, id_cliente, y las métricas de ventas. La idea es tener un esquema estrella (o copo de nieve en su defecto).

Si necesitas ayuda para hacer eso avisame y lo resolvemos.

Saludos!

hola Roque Salde, gracias  por responder.

ya junte la info de las tablas, pero ahora los datos están revueltos y no sabría que detalle sucursal_ventas_detalle corresponde a sucursal_ventas

por ejemplo una sucursal_ventas de $7000

en sucursal_ventas_detalle  

producto 1 = cantida 4, total $4000

producto 2  = cantidad 2, total $3000

lo que yo trato de lograr es lo siguiente 

Responder a debate

RSS

Distintivo

Cargando…

© 2019   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio