none
ayuda con tabla de hechos y Dimension tiempo en SSIS 2008 RRS feed

  • Pregunta

  • De antemano gracias x su atencion me gustaria saber si en ssis 2008 se puede a traves de una transformacion reemplazar la fecha de mi tabla de hechos es decir q ya tengo creada mi dimension tiempo con su respectivo id ahora lo q necesito es pasar esos ids de dim_tiempo a mi tabla de hechos en mi tabla de hechos poseo las fechas q necesito... por favor si alguien me puede indicar con la mayor cantidad de detalles posibles debido a q soy nuevo usando esta herramiento yo he usado pentaho y ahi si se puede gracias por sus respuestas...

    Hola estoy x aqui de nuevo x otra ayuda, me pueden ayudar indicandome paso a paso como puedo llenar lo q va a ser mi tabla de hechos desde varias tablas de varias bases de datos cuando estaba probando solo utilize un ado source en ssis y le mandaba el comando para requerir lo q necesitaba ahora lo que quiero es utilizar ese mismo query para seguir llenando esa tabla pero con el resto de base de datos...

    viernes, 29 de julio de 2011 20:45

Respuestas

  • Martín,

    Yo suelo usar lo que se llaman Claves subrogadas inteligentes, en el caso de la fecha, para mi es un entero con el formato YYYYMMDD, es una práctica bastante común.

    De esta forma evitas tener que ir a la dimensión tiempo a nada, simplemente si la clave para el dia de hoy en mi dimension tiempo es 20110801, en la tabla de hechos, puedes crear un campo calculado que sea el Convert(char(8),fecha,112) que te devolverá eso.

    De esta forma, no hay que hacer cambios en estructuras y además queda muy limpio, sin lookups ni nada de eso.

    Por cierto, te voy a mover esto al hilo de SQL Server Analisys Services, donde creo que es más adecuado.


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    lunes, 1 de agosto de 2011 15:39
    Moderador

Todas las respuestas

  • Claro, mándanos tus columnas de la tabla de hechos y la de dimensión de tiempo para que te ayudemos.

    Con una muestra de 2 datos por tabla es suficiente 

    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com
    • Editado dani671MVP viernes, 29 de julio de 2011 22:56 aclarar
    viernes, 29 de julio de 2011 22:55
  • Además de la solicitud de Daniel, es importante recalcar que en tu tabla de hechos no debes tener la fecha almacenada sino solamente los ID de tu dimensión tiempo. Cuándo nos envíes dichas tablas, muy probablemente haya que rediseñar la tabla de hechos para que no almacene ningún campo tipo fecha.

    Saludos,

     

     


    Guillermo Taylor F.

    IT Pro & Xbox gamer

    My blog

    sábado, 30 de julio de 2011 14:25
  • gracias por su pronta respuesta al parecer veo q no me explique bien yo me encuentro en la fase de transformacion y carga de datoses decir q estoy en diseño de mi tabla de hechos y aqui adjunto el scipt de lo que seria mi tabla de hecho con la tabla q seria la dimension tiempo:

    USE [TanqueTransito]
    GO
    /****** Object:  Table [dbo].[PeajeAurora03_10]    Script Date: 08/01/2011 10:17:46 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[PeajeAurora03_10](
        [eve_codev] [smallint] NULL,
        [eve_fecha] [date] NULL,
        [transito] [int] NULL,
        [categoria] [int] NULL,
        [FormaPago] [int] NULL,
        [codigo_estacion] [smallint] NULL
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  Table [dbo].[Dim_Tiempo]    Script Date: 08/01/2011 10:17:46 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Dim_Tiempo](
        [TiempoID] [int] NOT NULL,
        [Fecha] [datetime] NOT NULL,
        [Año] [int] NOT NULL,
        [MesID] [int] NOT NULL,
        [Mes] [varchar](10) NOT NULL,
        [Cuarto] [int] NOT NULL,
        [Semana] [int] NOT NULL,
        [NumDiaSemana] [int] NOT NULL,
        [DiaSemana] [varchar](15) NOT NULL,
    PRIMARY KEY CLUSTERED
    (
        [TiempoID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO

     

    y x cierto disculpen la demora en responder, como pueden ver en lo va a ser la tabla de hechos manejo un campo eve_fecha el cual lo deseo comparar con el campo fecha de dim_tiempo y cuando sean iguales asignarle el tiempoId lo cual haria mucho mas agil los procesos del cubo ahora la pregunta es cuales son los controles o transformaciones q debo utilizar para poner el tiempoid dentro de lo q seria mi tabla de hecho x favor ruego me indiquen con todos los detalles posibles y muchas gracias x su atencion...


    Martin Star
    lunes, 1 de agosto de 2011 15:27
  • Martín,

    Yo suelo usar lo que se llaman Claves subrogadas inteligentes, en el caso de la fecha, para mi es un entero con el formato YYYYMMDD, es una práctica bastante común.

    De esta forma evitas tener que ir a la dimensión tiempo a nada, simplemente si la clave para el dia de hoy en mi dimension tiempo es 20110801, en la tabla de hechos, puedes crear un campo calculado que sea el Convert(char(8),fecha,112) que te devolverá eso.

    De esta forma, no hay que hacer cambios en estructuras y además queda muy limpio, sin lookups ni nada de eso.

    Por cierto, te voy a mover esto al hilo de SQL Server Analisys Services, donde creo que es más adecuado.


    Comparte lo que sepas, aprende lo que no sepas (FGG) http://www.portalsql.com
    lunes, 1 de agosto de 2011 15:39
    Moderador
  • gracias x la ayuda la conversion me sirvio correctamente no era lo que yo queria pero me es eficiente me dare un par de vueltas x aca hasta q termine mi cubo x ayuda... gracias
    Martin Star
    lunes, 1 de agosto de 2011 17:59