Beruflich Dokumente
Kultur Dokumente
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.
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
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
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)
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.
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_PSICOLOGIA.txt ESP_SISTEMAS.txt
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.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.
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…
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,
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.
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.
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.
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.
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.
f) Ahora pasamos a la herramienta Derived Column. Aquí creamos la fórmula para asignar a
cada estudiante su promedio individual. Ok.
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.
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.
En el Mapping.
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().
Por otro lado, aquí se muestra los registros no encontrados, por lo tanto, se muestran tal cual al
original.