none
SSIS - TABLA DE HECHOS(FACT) DE UN DATAMART RRS feed

  • Pregunta

  • Imaginemos el escenario del poblamiento de dimensiones y hechos de un Datamart en el SSIS (Sql Server Integration Services) y teniendo en cuenta que las tablas de hechos son dependientes de los llenados de las dimensiones correspondientes.. 

    ¿las tablas de hechos son necesariamente poblados con origen de datos de las dimensiones llenadas? ó son llenados desde la base de datos transaccional.?

    caso real: tengo dos tablas,

    • una de clientes
    • otra de ventas .

    Clientes(miles) que si están registrados en venta pero ya fueron dados de baja en la tabla cliente y a la hora de realizar la relacion foranea entre estas 2 tablas pobladas no permite!! debido a que faltan registrar estos clientes dados de baja en la tabla cliente..todo esto porque se realizo un ETL desde la BD Transaccional...? aqui viene la pregunta inicial... ¿en la tabla de hechos, se trabajan con datos de las dimensiones??? ó se trabajan con datos de la BD transaccional de origen(Original)..???

     

    Gracias por su Tiempo.


    LPL
    lunes, 24 de octubre de 2011 0:34

Respuestas

Todas las respuestas

  • Se trabaja con los datos que necesites, no tiene por qué ser de un único origen de datos.

    En cualquier caso, si el problema es que hay ventas que no tienen asociado un cliente porque éste se dio de baja, la solución es no borrar datos de las dimensiones y cargar todos los clientes tengan el estado que tengan (alta o baja). Luego si lo necesitas pues tendrás que tratar los cambios de los clientes (y de cualquier otra dimensión) según te interese, es lo que se llama dimensiones lentamente cambiantes (http://en.wikipedia.org/wiki/Slowly_changing_dimension)

    En el ebook de Salvador Ramos tienes este y otros conceptos relacionados bien explicados: http://www.solidq.com/sqj/books/Documents/Microsoft-Business-Intelligence-vea-el-cubo-medio-lleno.pdf

    lunes, 24 de octubre de 2011 7:10
  • Lo que te nombra Carlos de las dimensiones lentamente cambiantes es la solución.

    En este caso además, si tus clientes no existen ya fisicamente, es decir no puedes localizarlos de ninguna de las maneras entonces has de hacer lo que se llaman miembros inferidos. Es decir.. o bien apuntarlos todos a un único cliente ficticio que se llame "Cliente de baja" o bien.. crear uno por cada ocurrencia con ese nombre o con ese nombre y una personalización (Cliente de Baja #821) por ejemplo,

    aquí parece que te habla de esos inferred members, aunque el wizard.. puede darte problemas de rendimiento  con muchos registros

    http://sqlserverpedia.com/wiki/SSIS_-_Slowly_Changing_Dimension_Wizard

    Espero que te sirva.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    lunes, 24 de octubre de 2011 14:03
    Moderador
  • La verdad no me agrada el SCD (slowly changing dimensions), por si te interesa, te paso una herramienta externa que tal vez te guste más:

    http://www.cozyroc.com/ssis/table-difference


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    lunes, 24 de octubre de 2011 15:10
  • Hola Daniel. Aprovecho el hilo de discusión para comprender porque no te agrada el SCD... Es la primera vez que veo que a alguien no le gusta el tema y pues si quisiera entender tus razones. Ahora bien, entiendo que de pronto no esté relacionado con el post y si prefieres, lo podemos tratar "offline"...

    Gracias y saludos,

     

     


    Guillermo Taylor F.

    IT Pro & Xbox gamer

    My blog

    lunes, 24 de octubre de 2011 19:50
  • Yo estoy básicamente de acuerdo con Daniel, mis motivos es que si sigues el wizard al final tardas un buen rato, necesitas unos conceptos que la mayor parte de la gente no tiene y el resultado mientras la tabla de búsqueda tenga hasta unos pocos miles de filas.. funciona bien, cuando se pone pesada.. no acaba.  Por otra parte implementar la mayoría de la funcionalidad con cajitas de SSIS no lleva más de 4 o 5 cajitas y se puede hacer realmente eficaz.

    El recomendar a nuestro amigo que lo lea, es simplemente por que entienda los conceptos, más que por que use el asistente..

     

     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    lunes, 24 de octubre de 2011 22:08
    Moderador
  • OK. Siempre es bueno estar abierto a otras maneras de hacer las cosas y, particularmente con SCD, pensaba que el tema de la historia estaba resuelto y que solo se podía hacer de esa manera. En mis experiencias, siempre que había que involucrar historia, porque dos agencias se fusionaban o le cambiaban el territorio a un vendedor, por mencionar un par de escenarios, use SCD en el ETL y en efecto, al detectar esos cambios, el proceso tardaba un poco más y uno rezaba porque la ventana de tiempo alcanzara, jajaja... En fin, gracias por el "semi-debate"...

    Saludos,

     

     


    Guillermo Taylor F.

    IT Pro & Xbox gamer

    My blog

    lunes, 24 de octubre de 2011 23:25
  • Yo también opino como Miguel y Dani: la tarea de SSIS para implementar SCD es bastante mejorable. Además de las razones dadas, otro inconveniente es que cualquier modificación que realices sobre la tarea recrea todas las operaciones, con lo que si habías hecho un cambio porque te interesaba lo tienes que volver a hacer.

    Otra opción interesante además de la que comenta Dani (que es de pago) es la que propone el compañero de Miguel, Davide Mauri. En http://sqlblog.com/blogs/davide_mauri/archive/2010/11/09/solidq-journal-pass-edition-relased-dlpc-freely-available-for-sqj-readers.aspx puedes ver más detalles

    PD: Miguel, luego te paso la factura por la publicidad gratuita  ;-)

    martes, 25 de octubre de 2011 7:05
  • Ya me encargo de decirle a Davide que recomiendas sus artículos :).
    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    martes, 25 de octubre de 2011 7:19
    Moderador
  • ¿te sirvió? ¿necesitas más ayuda?
    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA
    jueves, 27 de octubre de 2011 8:08
    Moderador
  • Disculpen por la demora. quedo todo claro y les comento que trabaje el cliente de baja como "no regristrado", bueno a una manera de entendimiento en la presentacion de datos.

     

    Muchas Gracias a todos fue de gran utilidad los conceptos! 


    LPL
    lunes, 7 de noviembre de 2011 8:02