Principales respuestas
ayuda con tabla de hechos y Dimension tiempo en SSIS 2008

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...
- Cambiado Miguel Egea GómezMVP, Moderator lunes, 1 de agosto de 2011 15:40 Es de diseño multidimensional (De:SQL Server)
- Editado Martin Star martes, 2 de agosto de 2011 19:06
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- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator lunes, 1 de agosto de 2011 20:22
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
-
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
-
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
GOy 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 -
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- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator lunes, 1 de agosto de 2011 20:22
-