Hitachi Vantara Pentaho Community Forums
Results 1 to 14 of 14

Thread: Creación del Data Warehouse

  1. #1
    Join Date
    Sep 2009
    Posts
    7

    Default Creación del Data Warehouse

    Ante todo comentar que mi intención es integrar Pentaho con un proyecto web y crear reportes dinámicos que tiren de la base de datos que tengo en un servidor Mysql.

    Bien, en primer lugar, entiendo que he de crear un modelo de datos en estrella o copo de nieve (mi pequeño data warehouse, si no me equivoco...). Así que lo primero que hago es, mediante Kettle, un proceso ETL de mi BD. Hago una query a mi BD, y la guardo en una tabla que a su vez está en una BD que me creo (esta sería mi tabla de hechos), y ahora me creo una dimensión por cada campo que creo necesario.
    Necesito que me confirmeis si es este el proceso que debo seguir para generar informes dinámicos, teniendo en cuenta que necesito que esto se haga en tiempo real, es decir, el cliente ha de obtener reportes dinámicos actualizados a tiempo real.

    Después entiendo que si todo este proceso que he contado es el camino adecuado, lo siguiente sería crearme esquema dimensional (con ayuda de la herramienta Schema Workbench), y sobre él generar consultas MDX, las cuales las puedo pintar en páginas JSP e incluso pasarle parámetros.

    Os rogaría me confirmarais si estoy siguiendo el proceso correcto, sobre todo del primer paso de crearme un "Data Warehouse" mediante kettle.

    Gracias a todos por vuestra colaboración.

  2. #2
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    En realidad, el esquema estrella no es un requisito sine qua non, sino que es la manera óptima para almacenar, administrar y acceder un data warehouse. Bien podrías, si por ejemplo tu base de datos fuera pequeña, consultarla directamente tal como está (desde luego, es poco recomendable).

    Algunas cuestiones terminológicas: ¿A qué te referís con "reportes dinámicos"? ¿A tablas dinámicas, como las tablas pivot de Excel, ó simplementa a que los datos de los reportes se actualicen a medida que cambian en la base original? Esta diferencia es importante por lo siguiente: si la necesidad de actualización en tiempo real es imperiosa, y tu sistema productivo lo permite, los reportes podrían consultar directamente tu base productiva y solucionado el problema.

    Entonces, para ir orientándonos, las preguntas serían las siguientes:

    1) ¿Qué tan grande es el conjunto de datos con el que vas a trabajar?
    2) ¿Qué tipos de reportes querés obtener: tablas dinámicas (pivot), ó reportes normales (listados, gráficos, etc) pero cuyos datos se actualicen dinámicamente?
    3) ¿Es un requisito armar un data warehouse?

    ¡Saludos!
    (en) Path to Pentaho knowledge: (1:Search the Wiki > 2:Search the Forums > 3:Ask) or (1:Get a Subscription)
    (es) El camino al conocimiento en Pentaho: (1:Buscar en la Wiki > 2:Buscar en los Foros > 3:Preguntar) o (1:Comprar una Subscripción)

  3. #3
    Join Date
    Sep 2009
    Posts
    7

    Default

    En principio se pretende integrar todos los proyectos de mi empresa con esta herramienta, motivados por dar al usuario posibilidad de interactuar con los reportes montados sobre un cubo OLAP.
    Este primer proyecto donde queremos integrarlo tiene 26 tablas. Queremos que el usuario final pueda manejar consultas similares a las que he visto que ofrecen las tablas dinámicas pivot, y pueda muestrear los datos desde distintos puntos de vista, y realizar también dashboards e integrarlos en google maps como he visto en alguna demo.

  4. #4
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    Bueno, me cambiaste el palo, como quien dice. De repente tenías más conocimiento del que expresaste en el primer mensaje :P

    En tu caso entonces sí, necesitarás un data warehouse, probablemente con un diagrama de estrella. El diseño de la base de datos para el mismo es lo primero que vas a tener que atacar, para luego montar un esquema de Mondrian sobre él utilizando el Schema Workbench ó escribiendo directamente el código XML.

    Luego sería resolver el tema de la carga del modelo y que se actualice en "tiempo real", que nunca va a ser 100% así. Digamos que dependiendo de las características de tus datos (especialmente de la posibilidad de detectar los últimos cambios en tu conjunto de datos) deberás evaluar la máxima frecuencia de actualización.
    (en) Path to Pentaho knowledge: (1:Search the Wiki > 2:Search the Forums > 3:Ask) or (1:Get a Subscription)
    (es) El camino al conocimiento en Pentaho: (1:Buscar en la Wiki > 2:Buscar en los Foros > 3:Preguntar) o (1:Comprar una Subscripción)

  5. #5
    Join Date
    Sep 2009
    Posts
    7

    Default

    Muchas gracias tdidomenico, eres un fuera de serie!
    Que conste que no fue mi intención "cambiarte el palo",...
    Estoy ya con el esquema workbench, pero creo que en breve te voy a tener que realizar una cuestión acerca de la dimensión temporal

  6. #6
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    Jajaja. No era una crítica el "cambio de palo", simplemente quise decir que tenía una impresión equivocada.

    A tu disposición para lo que necesites.

    ¡Saludos!
    (en) Path to Pentaho knowledge: (1:Search the Wiki > 2:Search the Forums > 3:Ask) or (1:Get a Subscription)
    (es) El camino al conocimiento en Pentaho: (1:Buscar en la Wiki > 2:Buscar en los Foros > 3:Preguntar) o (1:Comprar una Subscripción)

  7. #7
    Join Date
    Sep 2009
    Posts
    7

    Default

    bueno bueno,..., acá le traigo otra consultita.. (Por cierto, vaya paliza le pegó tu compatriota Del Potro a Nadal este fin de semana..., espero que haya revancha en breve!! jeje)
    En primer lugar, no entiendo para qué se crea el Catálogo de kettle. Según leí era un repositorio donde se guardan los objetos de Kettle, pero yo no he guardado ahí nada d nada. Las transformaciones de Kettle las guardo en una carpeta dentro del directorio de Pentaho.
    En segundo lugar, en cuanto a la dimensión del Tiempo, he de crear una tabla de dimensión de Tiempo en la etapa de la transformación?, basta con crear la dimensión en el esquema Mondrian? Es que según he visto en el video Tutorial del Sr. Michael Tarallo, él no crea una tabla dimensión Tiempo en la transformación, sino que despues en el esquema mondrian crea la dimensión directamente.
    Otra cuestión algo más tascendental es si es muy complejo el hecho de integrar el acceso a los dashboard y reportes (sin necesidad de ingresar en la User Console tal y como veo en las demos) en un proyecto web JSF por ejemplo. Según veo se utilizan páginas JSP, así que entiendo que en principio no debería haber muchos problemas a la hora de linkarlo a una aplicación web.

    Gracias y disculpa si te he soltao alguna que otra incoherencia, pero tengo el coco un poco loco últimamente entre una cosa y otra. : )
    Un saludo!!

  8. #8
    Join Date
    Sep 2007
    Posts
    834

    Default

    hola, abajo mis respuestas...
    Quote Originally Posted by jamlet View Post
    bueno bueno,..., acá le traigo otra consultita.. (Por cierto, vaya paliza le pegó tu compatriota Del Potro a Nadal este fin de semana..., espero que haya revancha en breve!! jeje)
    mmmm... me meto en el foro para no escuchar hablar tanto de futbol y tenis.. y mira! ...
    :P
    Quote Originally Posted by jamlet View Post
    En primer lugar, no entiendo para qué se crea el Catálogo de kettle. Según leí era un repositorio donde se guardan los objetos de Kettle, pero yo no he guardado ahí nada d nada. Las transformaciones de Kettle las guardo en una carpeta dentro del directorio de Pentaho.
    catalogo en base de datos y archivos son las dos alternativas para guardar transformaciones y jobs. Usas una o la otra.
    Quote Originally Posted by jamlet View Post
    En segundo lugar, en cuanto a la dimensión del Tiempo, he de crear una tabla de dimensión de Tiempo en la etapa de la transformación?, basta con crear la dimensión en el esquema Mondrian? Es que según he visto en el video Tutorial del Sr. Michael Tarallo, él no crea una tabla dimensión Tiempo en la transformación, sino que despues en el esquema mondrian crea la dimensión directamente.
    Por supuesto que tiene que existir la tabla para la dimension tiempo. El tema es si la creas con una ktr (hay un ejemplo dentro de samples) o desde otra aplicacion, con codigo, con sql, etc. Para el cubo es indistinto de donde salieron los datos.
    A proposito cual es el video que mencionas?
    Quote Originally Posted by jamlet View Post
    Otra cuestión algo más tascendental es si es muy complejo el hecho de integrar el acceso a los dashboard y reportes (sin necesidad de ingresar en la User Console tal y como veo en las demos) en un proyecto web JSF por ejemplo. Según veo se utilizan páginas JSP, así que entiendo que en principio no debería haber muchos problemas a la hora de linkarlo a una aplicación web.
    Cualquier reporte o cubo en definitiva los xaction pueden invocarse desde cualquier aplicacion web. Basta hacer una correcta integracion (librerias, etc.)


    espero te sean utiles las respuestas,
    saludos
    mc

  9. #9
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    Complemento algunas de las respuestas de María:



    Quote Originally Posted by jamlet View Post
    bueno bueno,..., acá le traigo otra consultita.. (Por cierto, vaya paliza le pegó tu compatriota Del Potro a Nadal este fin de semana..., espero que haya revancha en breve!! jeje)
    Claro que habrá revancha. La pregunta es si le convendrá al buen Rafa

    Quote Originally Posted by jamlet View Post
    En primer lugar, no entiendo para qué se crea el Catálogo de kettle. Según leí era un repositorio donde se guardan los objetos de Kettle, pero yo no he guardado ahí nada d nada. Las transformaciones de Kettle las guardo en una carpeta dentro del directorio de Pentaho.
    Como dijo María, las alternativas son ó el catálogo ó los archivos XML. El beneficio del catálogo es que todos los objetos se almacenan en un lugar centralizado, y podés por ejemplo utilizar la misma conexión en todas las transformaciones sin problemas. Esto requiere un poquito más de esfuerzo si trabajás con archivos, pero lográs la misma funcionalidad mediante los archivos shared.xml y el kettle.properties. Este hilo tiene buena información al respecto (aunque en inglés): http://forums.pentaho.org/showthread.php?t=67424.

    Quote Originally Posted by jamlet View Post

    En segundo lugar, en cuanto a la dimensión del Tiempo, he de crear una tabla de dimensión de Tiempo en la etapa de la transformación?, basta con crear la dimensión en el esquema Mondrian? Es que según he visto en el video Tutorial del Sr. Michael Tarallo, él no crea una tabla dimensión Tiempo en la transformación, sino que despues en el esquema mondrian crea la dimensión directamente.
    Me imagino que lo que hace Tarallo es utilizar lo que se llama una dimensión degenerada (sin risas, por favor). Esto es utilizar un campo de la tabla de hechos, en este caso seguramente conteniendo una fecha, para crear una dimensión. Yo por mi parte te recomendaría utilizar una dimensión separada. En este vínculo hay una simpática herramienta que te permite generar dimensiones de tiempo para MSSQL, PostgreSQL ó como CSV. Almacenando eso en una tabla luego sería simplemente cuestión de tener una transformación que te asocie las fechas de la tabla de hechos al registro correspondiente de esa tabla, definir la dimensión en el esquema de Mondrian y listo, tenés tu dimensión de tiempo con todos los datos que quieras (y probablemente más).

    Quote Originally Posted by jamlet View Post
    Otra cuestión algo más tascendental es si es muy complejo el hecho de integrar el acceso a los dashboard y reportes (sin necesidad de ingresar en la User Console tal y como veo en las demos) en un proyecto web JSF por ejemplo. Según veo se utilizan páginas JSP, así que entiendo que en principio no debería haber muchos problemas a la hora de linkarlo a una aplicación web.
    Si te manejás bien con proyectos web Java no debería ser problema. Yo he integrado las diferentes librerías en varias aplicaciones y no es demasiado complejo.

    ¡Saludos!
    (en) Path to Pentaho knowledge: (1:Search the Wiki > 2:Search the Forums > 3:Ask) or (1:Get a Subscription)
    (es) El camino al conocimiento en Pentaho: (1:Buscar en la Wiki > 2:Buscar en los Foros > 3:Preguntar) o (1:Comprar una Subscripción)

  10. #10
    Join Date
    Sep 2009
    Posts
    7

    Default

    Muchas gracias a ambos. Así da gusto aprender!
    Ahora me hayo en un camino mucho más iluminado : ).

  11. #11
    Join Date
    Sep 2009
    Posts
    7

    Default

    Me he dejado un detalle en el tintero que va siendo hora de tratar antes de que siga evolucionando el proyecto.
    El primero paso que doy para la creación del modelo en estrella es hacer una query contra la BD y esta la guardo en una tabla en mi esquema "data warehouse"(que es donde ubico el esquema en estrella) cuyos campos son los campos rescatados como resultado de la query. Y a partir de aquí me construyo el proceso de transformación del modelo en estrella. Y me queda la duda de si es así la única opción que tengo o si hay algo más eficiente...
    Un saludo!
    Last edited by jamlet; 09-16-2009 at 02:16 PM.

  12. #12
    Join Date
    Sep 2007
    Posts
    834

    Default

    Hola!
    El primer paso en realidad es cargar las tablas de dimension: las que rodean a la tabla de hechos en el modelo estrella.
    Luego cargas la tabla de hechos donde figuran los distintos indicadores y ids que apuntan a las distintas dimensiones.
    A veces las dimensiones se pueden cargar al mismo tiempo que la tabla de hechos, pero nunca la tabla de hechos en primer lugar.
    saludos!
    mc

  13. #13
    Join Date
    Sep 2009
    Posts
    7

    Default

    En cuanto a la dimensión de tiempo, tengo q hacer una carga pa un determinado tiempo (por ejemplo 10 años). Bien:

    1) En cuanto a los campos de esta tabla, por ejemplo me creo una Sk_Time tipo numérica, un campo tipo Date que sea la Fecha que será cada uno de los días pertenecientes a estos 10 años de carga, otro que sea el Trimestre, otro la Semana, otro el DiaSemana, etc.

    2) En mi Tabla de Hechos he de tener una FK_SkTime q referencie a la tabla Dimensión Tiempo (como toda dimensión que se precie), pero el campo Fecha que rescato haciendo una consulta a la Base de Datos y que está directamente relacionado con los registros que voy a guardar en mi tabla de hechos como la integro en este modelo en estrella????. Tiene que aparecer en la Tabla de Hechos??, tiene que estar en la dimension Tiempo???

    No sé si me explico, pero no entiendo cómo relacionar mi tabla de hechos con esas fechas en concreto. Es decir, cada uno de los registros de la Tabla de Hechos están relacionados con una Fecha en concreto. Pues no sé cómo relacionar eso con una dimensión Tiempo que son 3600 registros que hacen referencia a cada uno de los días en un intervalo de 10 años.


    Espero haber transmitido mi dilema...
    Last edited by tdidomenico; 10-19-2009 at 01:33 PM. Reason: Lenguaje, por favor.

  14. #14
    Join Date
    Sep 2007
    Posts
    834

    Default

    Sí, transmitiste muy bien tu dilema, sobre todo por el "como c..". No suena muy lindo aca en Argentina

    Bueno, vamos al dilema. En general lo mas comodo para dimensiones de tiempo, en lugar de tener una clave numerica es usar la misma fecha como clave, por ejemplo en formato string aaaammdd. Asi es mucho mas facil la relacion entre las tablas. Ademas si necesitas hacer una mirada rapida a la tabla de hechos, ahi mismo ya ves la fecha y no un numerito que no significa nada.
    Espero te sirva,
    slds

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.