SSIS – Usar Data Viewers

0 comentarios

Hola a todos… he regresado con un post “sumamente interesante”… Voy a mostrarles como usar Data Viewers en los flujos de datos. Seguramente se preguntarán para que nos sirven los Data Viewers… nos sirven principalmente para poder observar que datos se están pasando de un componente a otro a través de un flujo de datos y de esta manera poder llevar a cabo un seguimiento más preciso de nuestro proceso.
Veamos cómo se agregan y utilizan los Data Viewers…
Utilizando el mismo ejercicio que expliqué con anterioridad (http://mciacci.blogspot.com/2008/04/ssis-uso-de-condicionales-en.html ) o cualquier otro ejercicio que tengo al menos 2 componentes, debemos hacer lo siguiente:
1. Click derecho sobre la flecha verde que une los componentes, y seleccionamos le opción Edit…

2. Hacemos click en lo opción Data Viewers de la ventana Data Flow Path Editor y posteriormente en el botón Add… de la parte inferior.



3. En la ventana Configure Data Viewer dejamos seleccionado Grid como está por defecto y damos Ok.



4. Damos click en Ok de la ventana Data Flow Path Editor



5. Veremos cómo se agrega un icono de una grilla al costado de la flecha verde, lo que indica que el Data Viewer ha sido agregado.



6. Al ejecutar el proceso veremos que se abre una grilla con los datos que están circulando de un componente a otro. Esto nos servirá para analizar los datos en busca de errores.



Espero les haya servido de ayuda y ante cualquier duda escriban sus comentario

SSIS – Unpivot con un Script

0 comentarios

Muchas veces necesitamos invertir la posición de algunas filas y columnas de entrada para guardarlas en destino. Aclararé un poco más este asunto con un ejemplo, supongamos que tenemos los datos con la siguiente estructura:



Supongamos que por algún motivo necesitamos que esa estructura cambie y adopte la siguiente:



Lo que hemos hecho en la segunda tabla es crear una fila (Row) por cada columna de la primer tabla (excepto la columna ID), entonces por ejemplo, para la primer fila de la primer tabla tenemos 3 filas en la segunda tabla, una para cada columna. Las columnas de la segunda tabla representan lo siguiente:
ID: Código de Cliente, equivalente a la columna ID de la primera tabla.
Columna: indica el número de columna del dato puesto en la columna “Valor” en la primera tabla.
Valor: indica el valor de una determinada columna en la primera tabla.

Ahora…. Como podemos hacer esto en una package de SSIS???
Lo que debemos hacer es agregar en el Data Flow un componente Script de tipo Transformación, posteriormente vincularlo con el componente que le proporcione los datos de entrada y crear los Outputs que necesitamos de salida. Para comprender mejor el asunto, voy a aclarar que lo los Inputs que necesitamos son los campos listados en la primera tabla, mientras que los Outputs son los correspondientes a la segunda tabla. Posteriormente colocaremos el siguiente código dentro del Script:

'Fila para la Columna 1 = Columna Cliente
With Output0Buffer
.AddRow()
'ID es el OUTPUT para el Campo ID y Row.ID es el Input
.ID = Row.ID
.COLUMNA = 1
.VALOR = Row.Cliente
End With
'Fila para la Columna 2 = Columna Categoria
With Output0Buffer
.AddRow()
'ID es el OUTPUT para el Campo ID y Row.ID es el Input
.ID = Row.ID
.COLUMNA = 2
.VALOR = Row.Categoria
End With
'Fila para la Columna 3 = Columna Deuda
With Output0Buffer
.AddRow()
'ID es el OUTPUT para el Campo ID y Row.ID es el Input
.ID = Row.ID
.COLUMNA = 3
.VALOR = Row.Deuda
End With

Damos Ok en el script y lo unimos al destino que corresponda para que se produzca la importaci[on de los datos al destino deseado.
Eso es todo, es más simple de lo que parece… y ya saben, si tienen dudas solo escriban comentarios. Ciao!