Pregunta

Fondo

Tengo una tabla de dimensiones que tiene un único registro para cada día. Cada registro tiene una clave principal, por lo que los datos de ejemplo serían:

Dimension Table
---------------

---------------------------------
| ID   | DateTime               |
---------------------------------
| 1083 | 04/10/2008 10:02:00 PM |
---------------------------------

Lo que intento hacer es tomar mi columna de datos de origen que tiene un valor de fecha y hora SQL (como 04/10/2008 10:02:00 PM ) y hacer que SSIS derive lo que el primario La clave de la tabla de dimensiones debe ser ( 1083 en el ejemplo anterior). Estoy tratando de adaptar esto al flujo de datos dentro de mi paquete y evitar el uso de tablas de preparación.

Me gustaría llamar a una función de base de datos durante mi flujo de datos para que mi paquete SSIS descubra el timeid para un registro datetime . He intentado usar DeriveColumn pero eso no parece permitir el uso de T-SQL; más bien solo funciones integradas en ANSI SQL.

Pregunta

¿Hay otra forma de hacer esto dentro del flujo de datos? ¿O tendré que usar tablas de preparación y usar un SQLTask fuera del flujo de datos para manipular mis datos?

¿Fue útil?

Solución

Si te entiendo, tienes un data mart con una dimensión de tiempo, y necesitas obtener el timeId que corresponde a un momento en particular.

Si eso es correcto, entonces desea utilizar un componente de búsqueda. Para la tabla de referencia, use algo como SELECT timeId, timeStamp FROM TimeDimension , luego busque en la columna de entrada que contiene la marca de tiempo. Use el timeId como la columna de salida, y ahora cada fila en su flujo de datos tendrá el timeId que corresponde a su marca de tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top