Hitachi Vantara Pentaho Community Forums
Results 1 to 10 of 10

Thread: Carga de la tabla de hechos

  1. #1
    Join Date
    Sep 2009
    Posts
    12

    Default Carga de la tabla de hechos

    Hola a todos!

    Tengo algunas dudas que os quería comentar, espero explicarme bien... :-)
    Tengo cargadas las tablas de las dimensiones y ahora me toca cargar la tabla de hechos. Algunas de las dimensiones las he cargado con el paso "Búsqueda/Actualización en Dimensión" ya que me gestiona las dimensiones SCD con sus versiones correspondientes.
    Todos los valores necesarios para cargar en la tabla de hechos, los puedo obtener en una sencilla SQL contra el esquema fuente e introducirlos en el flujo con el paso "Entrada tabla".
    Ahora en este flujo debo introducir las claves técnicas(TK) generadas de las distintas dimensiones. Explorando los distintos "pasos" pretendía hacerlo con el paso "Búsqueda/actualización en Combinación", ya que devuelve la TK encontrada y entiendo que gestiona las versiones (¿?). Pero me encuentro con un problema, los casos en los que no encuentra el registro correspondiente en la dimensión, este paso inserta un nuevo registro en la misma, y devuelve al flujo ese nuevo TK, sin embargo, ese caso me gustaría gestionarlo de otra manera, por ejemplo asignarle para ese valor el 0 en la tabla de hechos, registro que ya existe en la dimensión.
    También he probado el paso Búsqueda en Base de Datos, pero no sabría cómo tratar las versiones de la dimensión, y creo que tampoco me valdría para el caso en que no encuentra correspondencia en la dimensión, ya que podría descartar los registros, pero no tratarlos...

    Os agradezco cualquier aportación, igual intento hacerlo todo con pasos y no se puede... no sé..

    Muchas gracias desde ya!!
    ))

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

    Default

    El paso "Dimension Lookup / Update" ("Búsqueda/Actualización en Dimensión") no sólo te permite crear y mantener la tabla de dimensiones, sino obtener las claves correspondientes teniendo en cuenta las fechas de validez de los registros.

    Básicamente tenés que deshabilitar la opción "Actualizar la dimensión". En ese caso, cuando no encuentra el valor buscado, devuelve el valor de clave para "desconocido". En esta página de la wiki tenés la referencia completa: http://wiki.pentaho.com/display/EAI/...+Lookup-Update

    ¡Saludos!
    Last edited by tdidomenico; 09-17-2009 at 12:47 PM.
    (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
    12

    Default

    Sí sí sí!! Lo vi!!

    Muchas gracias!!!


  4. #4
    Join Date
    Sep 2009
    Posts
    12

    Default

    Hola de nuevo,
    Me he acordado de otra cosa..
    Tengo el caso de una dimensión que sé que no va a cambiar en el tiempo(no necesito versión), pero que su clave de negocio es más de un campo, me gustaría que kettle generase la clave subrogada, ¿existe algún paso que haga esto?


    Gracias, gracias
    Last edited by lelykely; 09-17-2009 at 01:42 PM.

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

    Default

    Podés utilizar también el Dimension Lookup/Update, sin utilizar la parte de versionamiento.

    ¡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)

  6. #6
    Join Date
    Sep 2009
    Posts
    12

    Default

    Hola,


    Cuando no indico nombre de columna para la versión, me da el siguiente error:

    ORA-01747: especificación no válida de usuario.tabla.columna, tabla.columna o columna

    Falla ya en la primera inserción, cuando va a insertar el registro 0 de la dimensión, intenta insertar el valor (0,1) en las comunas (TK, null).

    Además de dejar los campos de versionado en blanco,¿debo hacer algo más?


    Gracias!!

  7. #7
    Join Date
    Sep 2007
    Posts
    834

    Default

    Hola
    aunque quieras obviar el tema de versionamiento, el step dimension L/U te obliga a tener las columnas version, fechadesde y fechahasta. La version siempre queda en 1, y las fechas siempre tienen los valores default. Y esas columnas nunca las usas. En la solapa de campos pones update para todos los campos.
    Otra opcion es usar combination L/U seguido de un update para los campos que no forman parte de la clave.
    El combination L/U te genera la clave surrogada. Lo unico a tener en cuenta es que como ese step solo te actualiza los campos que forman parte de la clave, el resto de los campos tienen que tener valores por defecto, o permitir nulos; de lo contrario el step va a fallar.
    slds
    mc

  8. #8
    Join Date
    Sep 2009
    Posts
    12

    Default

    Hola,

    Parece que la mejor opción es usar Combination L/U + Update.
    Sin embargo para que no de error el step de Update, debo establecer el tamaño de la transacción a 1 en Combination L/U, para que haga un commit después de cada insert. La transformación se vuelve muy lenta. ¿Conocéis alguna alternativa?

    Gracias!

  9. #9
    Join Date
    Sep 2007
    Posts
    834

    Default

    Sí. Poner todo en una transaccion.
    Es un checkbox en las propiedades de la transformacion (Ctrl-T), solapa miscelanea.

    saludos

  10. #10
    Join Date
    Sep 2009
    Posts
    12

    Default

    Perfecto! Muchas gracias!

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.