Introducción
Paso a paso el desarrollo de una caso práctico de proceso ETL en transferencia de información de
base de datos entre un origen y destino haciendo uso de SSIS y DataTools.
En el siguiente ejercicio, se creará un proyecto SSIS que transferirá las filas de un join entre las tablas
Product y ProductSubCategory en la base de datos AdventureWorks, hacia una tabla ubicada en la
base de datos AWorks_MartDemo Para esto, se utilizará la transformación Data Flow Task.
Procedimiento
Verificar que se tiene instalada la base de datos AdventureWorks2012 en el equipo.
1
Lo que queremos hacer es crear una tabla con campo sobre productos y el nombre de subcategoría.
La consulta SQL es:
Ahora podemos crear el proyecto usando el Data Tools de SQL Server 2012
Este nos abrirá el Visual Studio 2010 Shell, procedemos a crear un Nuevo proyecto
2
Nos muestra el ambiente de trabajo, el cuadro de herramientas de SSIS y en el Explorador de
soluciones, aparecen los paquetes, parámetros y la administración de conexiones.
Lo primero que vamos a realizar será crear la conexión del origen de datos. En este caso, la base
de datos AdventureWorks, para lo cual realizaremos una conexión vía ADO.NET
Para esto, nos ubicamos en Administración de Conexiones, y damos botón derecho para crear una
nueva conexión.
3
En la ventana de Administrador de conexiones, ingresamos los parámetros del servidor, nombre
de la base de datos y el nombre de usuario y la contraseña (en este caso, usamos la cuenta de
inicio de sesión de administrador o sa) para autentificar en SQL Server. Y luego comprobamos la
conexión.
4
A continuación, establecemos la conexión a la base de datos AdventureWorks2012, y luego
presionamos el botón Aceptar.
Ahora debemos crear la conexión de destino. En este caso, vamos a crear una base de datos de
nombre AWorks_MartDemo. Para ello, creamos una nueva base de datos en SQL Server
Management Studio (SSMS).
5
Ahora creamos una nueva conexión en Administradores de conexiones en SSIS para esta base de
datos de destino AWorks_MartDemo, pero usando la conexión OLEBDB y presionamos Agregar.
Luego, creamos una nueva conexión de datos, presionando Nueva, y en la ventana Administrador
de conexiones, completamos los datos de servidor y nombre de usuario, seleccionamos la base de
datos de destino y probamos la conexión.
6
Para terminar, presionamos Aceptar. Y nuevamente, Aceptar, tal manera que tendremos dos
conexiones creadas en Administradores de conexiones, una de origen y otra de destino de los
datos.
Ahora nos falta crear los paquetes de trabajo para realizar la carga de los datos. Para ello, vamos a
Paquetes SSIS, y seleccionamos el paquete por defecto Package.dtsx, y le cambiamos el nombre
por CopiarProductos.
A continuaciones, vamos a crear una nueva tarea SQL para ejecutar. Para ello seleccionamos del
Cuadro de herramientas de SSIS, la opción Tarea Ejecutar SQL.
7
Luego lo arrastramos al área de trabajo, quedando del siguiente modo.
Ahora seleccionamos la pestaña Flujo de datos, para definir el flujo de datos de la tarea. Luego, le
agregamos una Tarea de Flujo de Datos, y elegimos Origen de ADO.NET en Otros orígenes.
8
Y le cambiamos el nombre a Consulta AdventureWorks en sus Propiedades.
Vamos a configurar la tarea, para lo cual damos doble clic, y en la ventana de Editor de orígenes
ADO.NET seleccionamos el modo de acceso a datos Comando SQL, y luego agregamos la sentencia
SQL que generamos anteriormente.
vi
Ahora vamos a añadir el destino de los datos. En este caso, el destino es OLEDB, para lo cual
escogemos Destino de OLE DB en el grupo Otros destinos.
9
Y nos muestra el siguiente elemento.
Luego, damos doble clic sobre el nodo de Productos destino, y en la ventana de Editor de destino
OLE DB, creamos una nueva tabla, presionando el botón Nueva.
Vemos que ya se ha definido una tabla con los datos recuperados de la sentencia SQL, por lo que
seleccionamos Aceptar, y nos mostrará el nombre de la tabla que se va a crear.
10
En donde podemos ver que los datos se van a pasar de una consulta SQL a una tabla.
Luego aceptamos esta asignación, con lo que se ha armado la arquitectura para proceder después
a ejecutar este trabajo.
Ahora, revisamos en SQL Server, si se ha creado la tabla y si se han cargado los datos.
11
Con esto hemos visto que se han transferido los datos de la consulta SQL a la base de datos.
12