Sie sind auf Seite 1von 22

TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

Laboratorio SSIS

En este laboratorio haremos uso de varias herramientas de transformación que nos permitirán extraer
los registros de los estudiantes desde un origen Excel, posteriormente se dividirá estos registros en
varios archivos por especialidad, luego, con un bucle se cargarán todos estos registros para asignarles el
promedio individual y el promedio por especialidad, finalmente, almacenarlos en dos tablas de destino
de acuerdo a un criterio de búsqueda los registros encontrados y no encontrados. Este laboratorio tiene
la finalidad de mostrar el uso y combinación que se puede realizar con algunas herramientas de
transformación, que luego podemos aplicarlo a los diversos requerimientos del negocio.

Este es el esquema general:

En la imagen anterior se ha insertado y conectado: Execute SQL Task, Data Flow Task, el bucle Foreach
Loop Container y dentro de este otro Data Flow Task. La distribución de los elementos se debe a un
orden de precedencia, es decir hay procesos que deben ejecutarse primero para entregar los resultados
a los siguientes y continúe hasta finalizar.

1. Como primer paso debemos insertar estas herramientas y asignar las descripciones
correspondientes.
En cada uno de los elementos del diagrama de flujo de datos se encuentran otros subelementos que
iremos describiendo y configurando conforme avanzamos el laboratorio.
2. Iniciamos con el
Execute task SQL
(Eliminar registros).
Hacemos doble clic
para abrir la ventana de
configuración. En la
ficha General,
verificamos el tipo de
conexión y escribimos
los comandos en
Declaracion SQL.
Esto nos servirá para
eliminar los registros de
ambas tablas en el destino, con la finalidad de que cada vez que ejecutemos la aplicación se borren

Ing. Pedro D Coronado Rodríguez ~1~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

los registros anteriores y guardar los nuevos. OJO, esta herramienta quedará con un error ya que aún
no hay una conexión con la base de datos SQLServer. Lo haremos al final del laboratorio.
3. Ahora continuamos con la tarea Flujo de datos (Dividir estudiantes por especialidad). Hacemos doble
clic sobre el para abrirlo, insertamos los siguientes elementos y asignamos las descripciones
respectivas.

Aquí tenemos un Excel Source, conditional Split, y Flat File Destination. La finalidad de este flujo es
dividir a los estudiantes en varios destinos por el criterio de especialidad.
3.1. En primer lugar,
debe realizar la
conexión con
Excel Source en
el administrador
de conexiones,
tal como se ha
realizado en
laboratorios
anteriores.
Comenzamos
por configura el
Excel Source (El
archivo de Excel
es facilitado por
el docente –
Aula virtual).
En Connection
Manager

Ing. Pedro D Coronado Rodríguez ~2~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

En Column: Verificamos de haber seleccionado las columnas pertinentes. Finalmente hacemos


clic en Ok.

3.2. En segundo lugar, continuamos


con el Conditional Split. Lo
configuramos de la siguiente
manera.
Aquí estamos asignando los
nombres de las salidas, los cuales
no servirán para dividir los
registros con el criterio de
especialidad. Como podemos
observar hay 5 grupos, ya que en
el Excel hay 5 grupos de
especialidades.
Finalmente, hacemos clic en
Configure Error Output para
enviar aquellos registros que
tengan errores por otro lado.
Entonces en la columna Error
seleccionamos Redirect Row.

Ing. Pedro D Coronado Rodríguez ~3~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

3.3. En tercer lugar, configuramos los Flat File Destination. Se muestra la configuración del Flat File
“Economía”, a partir de
este ejemplo deberá
configurar las demás
salidas para las diferentes
especialidades.
a) Hacemos clic en New.
En la ventana
contextual
seleccionamos
Delimited. Con la
finalidad que se
mantenga las filas y
columnas en el orden
original. Clic en Ok.
b) En la siguiente
ventana debemos
crear el Flat File para
almacenar los
registros de los estudiantes de la especialidad de Economia. Clic en Browse, Asignamos el
nombre, clic en Open. ( se sugiere crear en la misma carpeta donde se encuentra el
archivo de Excel por un tema de organización)

Ing. Pedro D Coronado Rodríguez ~4~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

c) En Column, verificamos que todo se vea correcto. Ok.

d) En Advanced, debemos tener cuidado que los tipos de datos sean los correctos, de igual
manera verificar que en las demás salidas tengan la misma configuración, ya que si el
sistema encuentra tipos diferentes de datos no podremos avanzar con el laboratorio. Es
primordial que todos estos campos tengan los mismos tipos.
Especialidad: Unicode String[DT_WSTR]
Foro, trab_academico y examen_final: double precisión float[DT_R8], pueden ser otros
tipos, pero todas las salidas deben ser los mismos. Ok.

Ing. Pedro D Coronado Rodríguez ~5~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

e) Finalmente, en Column debemos verificar que el mapeo se haya realizado correctamente.


Ok.

Repetir todos los pasos del 3.3. para todas las demás especialidades, tener el mismo
criterio para asignar los nombres de los archivos. En este laboratorio se ha asignado los
siguientes nombres:

ESP_TURISMO.txt ERRORES_ESP.txt ESP_DERECHO.txt ESP_ECONOMIA.txt

ESP_PSICOLOGIA.txt ESP_SISTEMAS.txt

El flujo debe quedar como se muestra en la imagen en el punto 3 de este laboratorio.

Ing. Pedro D Coronado Rodríguez ~6~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

4. Continuamos con el flujo de datos Generar registro en caché, Posteriormente en este laboratorio,
será necesario buscar estudiantes por especialidad, entonces para tal situación, necesitamos tener
el nombre de cada una de las especialidades y el promedio correspondiente de cada especialidad.
Estos datos lo sacaremos desde el origen de Excel. Eso es lo que hará este flujo de datos.
4.1. Abrimos el flujo de datos e insertamos el Excel Source, el Data Converter (este es opcional
solo por la posibilidad de manipular los tipos de datos) y el Caché transform (hace que los
datos se almacenen temporalmente en memoria), asignamos las descripciones
correspondientes.

4.2. Configuramos el Excel Source.


a) Utilizamos la misma conexión del flujo anterior ya que es el mismo Excel. Escribimos el
comando SQL.

Ing. Pedro D Coronado Rodríguez ~7~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

Aquí estamos extrayendo el nombre de 03 especialidades y su promedio correspondiente


de las columnas Foro, trab_academico y examen_final.

b) En Column, verificamos que el resultado sea correcto. Ok.

4.3. Configuramos el Data Converter para manipular la salida de los tipos de datos. Esto para evitar
la posterior posibilidad de incompatibilidad de tipos al realizar la búsqueda. Ok.
4.4. Finalmente, terminamos con Caché Transform, es este lugar almacenaremos los resultados de
la consulta. Estos datos serán utilizados posteriormente para aplicarlos en los criterios de
búsqueda.
a) Clic en New.
b) En la nueva
ventana, hacemos
clic en Column y
verificamos las
columnas y tipo de
datos, tal como se
observa en la
imagen. Ok.

c) En Mappings,
conectamos los
campos del Data
Converter con los
del Caché
Transform. Ok.

Ing. Pedro D Coronado Rodríguez ~8~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

5. Continuamos con el Foreach (Bucle para cargar registro de varios archivos). Una de las utilidades de
este bucle es tomar varios orígenes de datos o varios archivos fuente para cargarlos de manera
secuencial. En esta última parte, cargaremos los registros de los cinco archivos divididos
anteriormente. Al momento de cargarlos buscaremos a los estudiantes que pertenecen a las
especialidades de Economia, Psicologia y Sistemas, además le asignaremos su promedio de nota
individual y el promedio de la especialidad a que pertenece para finalmente guardarlos, los demás
registros solo se almacenarán tal cual al origen en otra tabla de destino; como recordarás ya existe
una Caché que contiene el nombre de las 03 especialidades con sus promedios correspondiente.
5.1. Iniciamos configurando el bucle Foreach.
a) En el administrador de conexiones creamos un conector Flat File que servirá como
modelo de carga. Clic derecho/New Flat File Connection…

Ing. Pedro D Coronado Rodríguez ~9~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

b) En General, buscamos y seleccionamos el primer archivo de la lista.

c) En Column, verificamos que las columnas y datos sean los correctos.

Ing. Pedro D Coronado Rodríguez ~ 10 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

d) En advanced, verificamos que los tipos de datos para las columnas foro, trab_academico
y examen_final sean del tipo double. Ok.

Hacemos clic derecho sobre la conexión Flat File configurada anteriormente y en el panel
de propiedades hacemos clic en el botón con los 03 puntitos para crear la propiedad
ConnectionString, hacemos clic en el botón de los tres puntos para crear la expresión.
Arrastramos el nombre de la variable hacia el cuadro de expresión y luego hacemos clic
en Evaluate expresión. Ok,

Ing. Pedro D Coronado Rodríguez ~ 11 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

e) Creamos una variable con la ruta completa de la carpeta donde se encentra los cinco
archivos, para esto debes rutear hasta seleccionar el primer archivo de la lista. Si no está
esta ventana, ir al menú SSIS/Variables. Esta variable servirá para mapear la carga de
todos los archivos encontrado, y es que el primer archivo tiene la misma estructura que
las demás.

f) Hacemos doble clic en el Foreach. En Collection, seleccionamos la url de la carpeta donde


se encuentran los cinco archivos .txt. y en files configuramos para que busque todos
aquellos archivos que inicien con las letras ESP_, que terminen con cualquier otro carácter
y que sean archivos del tipo .txt.

Ing. Pedro D Coronado Rodríguez ~ 12 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

g) En Mapping agregar la variable creada anteriormente. Ok.

5.2. Abrimos el flujo de datos dentro del Foreach e insertamos las herramientas, así como sus
descripciones, tal como se muestra en la imagen.

Este flujo se va a ejecutar 5 veces ya que los registros de todos los estudiantes están en 5
archivos .txt diferentes.

Ing. Pedro D Coronado Rodríguez ~ 13 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

Aquí tenemos un Flat File Source, Lookup, Derived Column y dos OLE DB Destination. A través
del Flat File obtendremos todos los registros desde las cinco fuentes, el Lookup lo recibe y
buscar todos aquellos estudiantes que son de las especialidades de ECONOMIA, PSICOLOGIA
Y SISTEMAS, a estos registros se le asignará el promedio de especialidad, recuerde que estos
datos los tiene el Caché Transform, por ende, debemos entender que Lookup utilizará los datos
del Caché Transform para aplicar los criterios de búsqueda y asignación de los promedios de
especialidad. De acuerdo a estos criterios de búsqueda Lookup envía los registros coincidentes
por la ruta de los encontrados, por otro lado, los demás registros los envía por la ruta de los
no encontrados. Los registros que van por la ruta de los encontrados pasan por la herramienta
Derived Column para hallar el promedio individual de cada estudiante; en seguida, todos estos
registros de almacenan permanentemente en una tabla de una base de datos SQL Server.

a) Creamos un .txt que nos servirá como plantilla a través de la cual pasarán todos los
registros. Hacemos doble clic en el Flat File Source/New/Browse/Digitar el nombre del
archivo .txt/Clic en Open.

Ing. Pedro D Coronado Rodríguez ~ 14 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

b) En Column, verificamos que todo se encuentre correcto. Ok.

c) Continuamos con el Lookup. Aquí utilizaremos los datos del Caché Transform para buscar
las especialidades y asignar los promedios de la especialidad. Abrimos la herramienta.
Verificamos que el modo Cache sea Full, el tipo de conexión de donde obtendrá los
registros sea a través del Caché Connection manager. También debe seleccionar la opción
de Redirigir registros a la salida de no encontrados.

Ing. Pedro D Coronado Rodríguez ~ 15 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

d) En Connection, Verificamos que esté seleccionado el Cache creado anteriormente.

e) Este paso en muy importante enterderlo, En el lado izquierdo se encuentran los campos
que provienen desde el Flat File Source, en el lado derecho se encuentra los campos del
Caché Transform. Unimos los campos especialidad desde el lado izquierdo al derecho y
hacemos un check al campo Promedio_especialidad. Esto significa lo siguiente. Lookup
buscará en los registros ingresante a los estudiantes que pertenecen a las especialidades
de ECONOMIA, PSICOLOGIA Y SISTEMAS, y adicionalmente les asignará el promedio de
especialidad. Todos los demás registros los dejará pasar sin tocarlos y enviarlos por la ruta
de no encontrados. Ok.

Ing. Pedro D Coronado Rodríguez ~ 16 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

f) Ahora pasamos a la herramienta Derived Column. Aquí creamos la fórmula para asignar a
cada estudiante su promedio individual. Ok.

Ing. Pedro D Coronado Rodríguez ~ 17 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

g) Finalmente, creamos las dos tablas con OLE DB Destination para almacenar los registros
encontrados y no encontrados. Pero no hay que olvidar que primero debemos crear una
conexión del tipo OLE DB en el administrador de conexiones. Estos procedimientos ya se
han realizados en laboratorios anteriores.

h) Se supone que la base de datos ya existe. Aquí solo la estamos seleccionando. Ok, Ok.

Ya tenemos la conexión.

Ing. Pedro D Coronado Rodríguez ~ 18 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

i) Ahora hacemos doble clic en el OLE DB Destination (El que está conectado con Derived
Column) y lo configuramos. Fíjese que estamos quitando las columnas de notas y solo
quedándonos con los promedios.

j) En Mapping, verificamos que las columnas de origen coincidan con las de destino. Ok.

Ing. Pedro D Coronado Rodríguez ~ 19 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

k) De la misma forma lo hacemos con el destino de registros no encontrados.

En el Mapping.

l) Para finalizar, debemos regresar a la herramienta Execute SQL Task y actualizar la


conexión, acuérdese que quedo con un error ya que no habíamos creado y seleccionado
la conexión con OLE DB

Ing. Pedro D Coronado Rodríguez ~ 20 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

6. Es hora de ejecutar la aplicación, Esta es una vista global, ello significa que todos los subprocesos han
tenido éxito.

7. Iremos a nuestro servidor SQL Server para comprobar los resultados. Sabido es que, si volvemos a
ejecutar la aplicación, no se incrementa los registros, sino que se elimina los registros anteriores para
cargar los nuevos, porque así lo hemos configurado.

Aquí tenemos los registros encontrados, verificamos que son las tres especialidades buscadas, con
sus respectivos promedios individual y de especialidad. Los decimales del promedio los podemos
manipular en la herramientas Derived Column con la función Round().

Ing. Pedro D Coronado Rodríguez ~ 21 ~


TOPICOS ESPECIALES DE INGENIERIA DE SISTEMAS

Por otro lado, aquí se muestra los registros no encontrados, por lo tanto, se muestran tal cual al
original.

Ing. Pedro D Coronado Rodríguez ~ 22 ~

Das könnte Ihnen auch gefallen