You are on page 1of 10

Taller de Inteligencia de Negocios

con Microsoft SQL Server


SQL Server Integration Services Procesos ETL
(Sergio Matsukawa Maeda)

Escenario

En el documento anterior se ha obtenido el modelo dimensional que nos permitir hacer


anlisis de las ventas de Gourmet Store. El modelo nos permitir implementar la base de
datos GourmetStore_DM.

Para poblar la base de datos GourmetStore_DM con la data proveniente del documento
Excel Ventas-MP95.xls y de la base de datos Northwind utilizaremos una base de datos
intermedia (base de datos stage) para ejecutar los procesos ETL necesarios para
estandarizar la data. Esta base de datos la denominamos GourmetStore_Stg.

Creacin del paquete SSIS para poblar GourmetStore_Stg a partir


de Northwind

Creacin de la solucin Poblar_GourmetStore_Stg1 de SSIS

Creacin de la solucin

1. Aplicacin: SQL Server Data Tools.


2. Men: Archivo, Nuevo, Proyecto.
3. Plantilla: Business Intelligence, Integration Services, Proyecto de
Integration...Business Intelligence.
4. Ubicacin: seleccionar su carpeta de trabajo.
5. Nombre: Poblar_GourmetStore_Stg1.
6. Crear directorio para la solucin: marcado.
7. Clic en Aceptar para finalizar.

Renombrar el paquete predeterminado Package.dtsx

1. Explorador de soluciones: clic secundario en Package.dtsx en Paquetes SSIS.


2. Clic en Cambiar nombre.
3. Renombrar a Poblar_desde_Northwind.dtsx.

Definir en el proyecto una conexin a Northwind y a GourmetStore_Stg

1. Explorador de soluciones: clic secundario en Administradores de conexiones.


2. Clic en Nuevo administrador de conexiones.
3. Tipo de administrador de conexin: OLEDB.
4. Clic en Agregar.
5. Clic en Nueva (si la conexin no existe ejecute los pasos del 6 al 9; si la conexin
existe, seleccinela y vaya al paso 10).
6. Proveedor: OLE DB nativo\SQL Server Native Client 11.0.
7. Nombre del servidor: localhost.
8. Seleccione o escriba el nombre de la base de datos: Northwind.
9. Clic en Aceptar.
10. Clic en Aceptar para finalizar.
11. Repetir para GourmetStore_Stg.
Poblar_Categoria_Stg

Origen de datos
Northwind..Categories
CategoryID, CategoryName

Destino de datos
GourmetStore_Stg..Categoria_Stg
idCategoria, nomCategoria

Definir la tarea de flujo de datos Poblar_Categoria_Stg

1. Ficha Flujo de control.


2. Cuadro de herramientas: arrastrar Tarea Flujo de datos a Flujo de control.
3. Renombrar Tarea Flujo de datos a Poblar_Categoria_Stg.
4. Seleccionar ficha Flujo de datos.
5. Cuadro de herramientas: arrastrar Asistente de orgenes.
6. Seleccionar tipo de origen: SQL Server.
7. Seleccionar Administradores de conexiones: localhost.Northwind.
8. Clic en Aceptar.
9. Renombrar Origen de OLE DB a Leer_Categories.
10. Clic secundario en Leer_Categories, Editar.
11. Modo de acceso a datos: Tabla o vista.
12. Nombre de la tabla o vista: Categories.
13. Seleccionar la pgina Columnas: seleccione CategoryID, CategoryName.
14. Clic en Aceptar.
15. Cuadro de herramientas: arrastrar Asistente de destinos.
16. Seleccionar tipo de destino: SQL Server.
17. Seleccionar administradores de conexiones: localhost.GourmetStore_Stg.
18. Clic en Aceptar.
19. Renombrar Destino de OLE DB a Escribir_Categoria_Stg.
20. Unir Leer_Categories con Escribir_Categoria_Stg.
21. Clic secundario en Escribir_Categoria_Stg, Editar.
22. Nombre de la tabla o vista: Categoria_Stg.
23. Seleccionar la pgina Asignaciones.
24. Columna de entrada: mapear CategoryID a idCategoria.
25. Columna de entrada: mapear CategoryName a nomCategoria.
26. Clic en Aceptar.

Poblar_Producto_Stg

Origen de datos
Northwind..Products, Northwind..Categories
SELECT ProductID, ProductName, CategoryID, CategoryName
FROM Products, Categories

Destino de datos
GourmetStore_Stg..Producto_Stg
idProducto, nomProducto, idCategoria, nomCategoria

Definir la tarea flujo de datos Poblar_Producto_Stg

1. Ficha Flujo de control.


2. Cuadro de herramientas: arrastrar Tarea Flujo de datos a Flujo de control.
3. Renombrar Tarea Flujo de datos a Poblar_Producto_Stg.
4. Seleccionar ficha Flujo de datos.
5. Cuadro de herramientas: arrastrar Asistente de orgenes.
6. Seleccionar tipo de origen: SQL Server.
7. Seleccionar Administradores de conexiones: localhost.Northwind.
8. Clic en Aceptar.
9. Renombrar Origen de OLE DB a Leer_Products_Categories.
10. Clic secundario en Leer_Products_Categories, Editar.
11. Modo de acceso a datos: Comando SQL.
12. Texto de comando SQL: digite SELECT Products.ProductID, Products.ProductName,
Products.CategoryID, Categories.CategoryName FROM Products INNER JOIN
Categories ON Products.CategoryID = Categories.CategoryID
13. Clic en Aceptar.
14. Cuadro de herramientas: arrastrar Asistente de destinos.
15. Seleccionar tipo de destino: SQL Server.
16. Seleccionar administradores de conexiones: localhost.GourmetStore_Stg.
17. Clic en Aceptar.
18. Renombrar Destino de OLE DB a Escribir_Producto_Stg.
19. Unir Leer_Products_Categories con Escribir_Producto_Stg.
20. Clic secundario en Escribir_Producto_Stg, Editar.
21. Nombre de la tabla o vista: Producto_Stg.
22. Seleccionar la pgina Asignaciones.
23. Mapear las columnas.
24. Clic en Aceptar.

Limpiar tablas en GourmetStore_Stg

Definir la tarea de ejecucin SQL Limpiar_GourmetStore_Stg

1. Ficha Flujo de control.


2. Cuadro de herramientas: arrastrar Tarea Ejecutar SQL a Flujo de control.
3. Renombrar Tarea Ejecutar SQL a Limpiar_GourmetStore_Stg.
4. Clic secundario en Limpiar_GourmetStore_Stg, Editar.
5. Connection: localhost.GourmetStore_Stg.
6. SQL Statement: TRUNCATE TABLE Ventas_Stg
TRUNCATE TABLE Producto_Stg
TRUNCATE TABLE Categoria_Stg
TRUNCATE TABLE Empleado_Stg
TRUNCATE TABLE Transportista_Stg
TRUNCATE TABLE Proveedor_Stg
TRUNCATE TABLE PaisProveedor_Stg
TRUNCATE TABLE Cliente_Stg
TRUNCATE TABLE PaisCliente_Stg
TRUNCATE TABLE Tiempo_Stg
7. Clic en Aceptar.
8. Clic en Aceptar para finalizar.

Poblar_PaisCliente_Stg

Origen de datos
Northwind..Customers
SELECT DISTINCT Country FROM Customers

Matsukawa..Paises
CodPais, NomPais

Destino de datos
GourmetStore_Stg..PaisCliente_Stg
idPaisCliente, nomPaisCliente
Definir la tarea flujo de datos Poblar_PaisCliente_Stg

1. Aadir al proyecto una conexin a la base de datos Matsukawa.


2. Ficha Flujo de control: aadir Tarea de flujo de datos y renombrarla a
Poblar_PaisCliente_Stg.
3. Aadir Asistente de orgenes que lee Customers de Northwind. Renombrar a
Leer_Customers.
4. Aadir una transformacin Bsqueda y renombrarla a Buscar_en_Paises.
5. Unir Leer_Customers con Buscar_en_Paises.
6. Doble clic en Buscar_en_Paises.
7. Pgina General: en Especificar cmo tratar las filas sin entradas coincidentes,
Redirigir filas a salida de errores.
8. Pgina Conexin: seleccionar localhost.Matsukawa, tabla Paises.
9. Pgina Columnas: en Columnas de entrada disponibles, clic secundario en Country,
Editar asignaciones.
10. En Columna de entrada: Country.
11. En Columna de bsqueda: nomPais, clic en Aceptar.
12. En Columnas de bsqueda disponibles: seleccionar codPais.
13. En Alias de salida: digitar codigoPais.
14. Pgina Salida de error: en Error seleccionar Redirigir fila, en Truncamiento
seleccionar Redirigir fila.
15. Clic en Aceptar.
16. Aadir Asistente de destinos que se conecta a GourmetStore_Stg y renombrarla a
Paises_No_Encontrados.
17. Unir Buscar_en_Paises con Paises_No_Encontrados. Seleccionar Redirigir fila.
18. Aadir Asistente de destinos que se conecta a GourmetStore_Stg y renombrarla a
Escribir_PaisCliente_Stg.
19. Unir Buscar_en_Paises con Escribir_PaisCliente_Stg.
20. En Salida seleccionar Salida de entradas coincidentes de bsqueda, clic en Aceptar.
21. Editar Escribir_PaisCliente_Stg para que cargue la data en PaisCliente_Stg.

Poblar_Cliente_Stg

Origen de datos
Northwind..Customers
SELECT CustomerID, CompanyName, Country
FROM Customers

Destino de datos
GourmetStore_Stg..Cliente_Stg
idCliente, nomCliente, nomPaisCliente

Definir la tarea flujo de datos Poblar_Cliente_Stg


Este procedimiento debe ser desarrollado en el aula por el alumno.

Agrupar tareas

Agrupar las tareas de flujo de datos Poblar_Categoria_Stg y Poblar_Producto_Stg

1. Llevar la flecha de flujo desde Poblar_Categoria_Stg a Poblar_Producto_Stg.


2. Seleccionar ambas tareas de flujo de datos.
3. Clic secundario sobre la seleccin, Agrupar.
4. Clic secundario en Grupo: renombrar a Poblar_Productos.
Poblar_Empleado_Stg

Origen de datos
Northwind..Employees
SELECT EmployeeID, LastName + ', ' + FirstName AS EmployeeName
FROM Employees

Destino de datos
GourmetStore_Stg..Empleado_Stg
idEmpleado, nomEmpleado

Definir la tarea flujo de datos Poblar_Empleado_Stg


Este procedimiento debe ser desarrollado en el aula por el alumno.

Poblar_Transportista_Stg

Origen de datos
Northwind..Shippers
SELECT ShipperID, CompanyName
FROM Shippers

Destino de datos
GourmetStore_Stg..Transportista_Stg
idTransportista, nomTransportista

Definir la tarea flujo de datos Poblar_Transportista_Stg


Este procedimiento debe ser desarrollado en el aula por el alumno.

Poblar_PaisProveedor_Stg

Origen de datos
Northwind..Suppliers
SELECT DISTINCT Country
FROM Suppliers

Destino de datos
GourmetStore_Stg..PaisProveedor_Stg
idPaisProveedor, nomPaisProveedor

Definir la tarea flujo de datos Poblar_PaisProveedor_Stg


Este procedimiento debe ser desarrollado en el aula por el alumno.

Poblar_Proveedor_Stg

Origen de datos
Northwind..Suppliers
SELECT SupplierID, CompanyName, Country FROM Suppliers

Matsukawa..Paises
CodPais, NomPais

Destino de datos
GourmetStore_Stg..Proveedor_Stg
idProveedor, nomProveedor, nomPaisProveedor
Definir la tarea flujo de datos Poblar_Proveedor_Stg
Este procedimiento debe ser desarrollado en el aula por el alumno.

Poblar_Tiempo_Stg

Origen de datos
Northwind..Orders
OrderDate

Destino de datos
GourmetStore_Stg..Tiempo_Stg
fecha, dia, mes, trimestre, ao

Definir la tarea flujo de datos Poblar_Tiempo_Stg

Definir la tarea de flujo de datos


1. Panel Flujo de control.
2. Cuadro de herramientas: Tarea Flujo de datos.
3. Renombrar Tarea Flujo de datos a Poblar_Tiempo_Stg.
4. Ficha Flujo de datos.

Definir el origen de datos


1. Cuadro de herramientas: Asistente de orgenes.
2. Seleccionar tipo de origen: SQL Server.
3. Seleccionar administradores de conexiones: localhost.Northwind.
4. Clic en Aceptar.
5. Renombrar Origen de OLE DB a Leer_Orders.
6. Clic secundario, Editar.
7. Modo de acceso a datos: Comando SQL.
8. Texto de comando SQL: SELECT DISTINCT orderDate AS fecha, DAY(orderDate) AS
dia, MONTH(orderDate) AS mes, DATEPART(quarter, orderDate) AS trimestre,
YEAR(orderDate) AS ao FROM Orders.
9. Clic en Aceptar.

Definir transformaciones de datos


1. Cuadro de herramientas: Conversin de datos.
2. Unir Leer_Orders con Conversin de datos.
3. Clic secundario en Conversin de datos, Editar.
4. Marque todas las columnas y establezca los siguientes valores para Alias de salida
y Tipos de datos:

5. Clic en Aceptar.
6. Cuadro de herramientas: Componente de script, Transformacin, Aceptar.
7. Clic secundario en Componente de script, Propiedades.
8. Propiedad ScriptLanguage: cambiar a Microsoft Visual Basic 2010.
9. Unir Conversin de datos con Componente de script.
10. Clic secundario en Componente de script, Editar.
11. Pgina Columnas de entrada: seleccione nMes y nTrimestre.
12. Pgina Entradas y salidas: expanda el nodo Salida 0, seleccione la carpeta
Columnas de salida.
13. Clic en Agregar columna, aada la columna cMes con DataType cadena Unicode
[DT_WSTR] y Length 10.
14. Aada la columna cTrimestre con DataType cadena Unicode [DT_WSTR] y Length
15.
15. Pgina Script: clic en Editar script.
16. Aada al script el contenido del archivo ActiveX_Tiempo.txt.
17. Cierre el editor de script, clic en Aceptar.

Definir el destino de datos


1. Cuadro de herramientas: Asistente de destinos.
2. Seleccionar tipo de destino: SQL Server.
3. Seleccionar Administradores de conexiones: localhost.Northwind_Stg, Aceptar.
4. Renombrar Destino de OLE DB a Escribir_Tiempo_Stg.
5. Unir Componente de script con Escribir_Tiempo_Stg.
6. Clic secundario en Escribir_Tiempo_Stg, Editar.
7. Nombre de la tabla o la vista: Tiempo_Stg.
8. Pgina Asignaciones: verificar el mapeo de columnas.

Poblar_Ventas_Stg

Origen de datos
Northwind y GourmetStore_Stg
Disear la consulta.

Destino de datos
GourmetStore_Stg..Ventas_Stg

Definir la tarea flujo de datos Poblar_Ventas_Stg


Este procedimiento debe ser desarrollado en el aula por el alumno.

Establecer el flujo de las tareas del paquete

Fijar el flujo de ejecucin de las tareas tal como se muestra en la figura.


Creacin del paquete SSIS para poblar GourmetStore_Stg a partir
de Ventas-MP95 de Excel

Crear el paquete

1. Explorador de soluciones: clic secundario en Paquetes SSIS, Nuevo paquete de


SSIS.
2. Renombrar el paquete a Poblar_desde_Excel.dtsx.

Definir en el proyecto una conexin a VentasMP-95 de Excel

3. Clic secundario en panel Administradores de conexiones del paquete, Nueva


conexin.
4. Tipo de administrador de conexin: EXCEL, clic en Agregar.
5. Botn Examinar: ubique el archivo VentasMP-95.xls.
6. Casilla La primera fila tiene nombres de columna: marcada.
7. Clic en Aceptar.
8. Renombre la conexin a Conexin_Ventas-MP95_Excel.

Poblar_Categoria_Stg

Origen de datos
Hoja Categorias: codCategoria, nombre

Destino de datos
GourmetStore_Stg..Categoria_Stg
idCategoria, nomCategoria

Poblar_Producto_Stg

Origen de datos
Hoja Ventas: codProducto, descripcin, categora
Hoja Categorias: nombre

Destino de datos
GourmetStore_Stg..Producto_Stg
idProducto, nomProducto, idCategoria, nomCategoria

Poblar_PaisCliente_Stg

Origen de datos
Hoja Clientes: pais
SELECT DISTINCT pais
FROM Clientes

Destino de datos
GourmetStore_Stg..PaisCliente_Stg
idPaisCliente, nomPaisCliente

Poblar_Cliente_Stg

Origen de datos
Hoja Clientes: codCliente, nombre, pais
Destino de datos
GourmetStore_Stg..Cliente_Stg
idCliente, nomCliente, nonPaisCliente

Poblar_Empleado_Stg

Origen de datos
Hoja Ventas: empleado

Destino de datos
GourmetStore_Stg..Empleado_Stg
idEmpleado, nomEmpleado

Poblar_Transportista_Stg

Origen de datos
Data no disponible

Destino de datos
GourmetStore_Stg..Transportista_Stg
idTransportista, nomTransportista
Insertar un registro con los valores 0 y 'No disponible'.

Poblar_PaisProveedor_Stg

Insertar 'Peru' en
GourmetStore_Stg..PaisProveedor_Stg
idPaisProveedor, nomPaisProveedor

Poblar_Proveedor_Stg

Insertar 0, 'Proveedor Local', 'Peru' en


GourmetStore_Stg..Proveedor_Stg
idProveedor, nomProveedor, nomPaisProveedor

Poblar_Tiempo_Stg

Origen de datos
Hoja Tiempo
fecha, dia, mes, trimestre, ao

Destino de datos
GourmetStore_Stg..Tiempo_Stg
fecha, dia, mes, trimestre, ao

Tarea de flujo de datos VentasExcel_a_VentasSQL

La tarea lee toda la data de la hoja Ventas de Excel y la carga en una tabla nueva de
GourmetStore_Stg de nombre VentasSQL, previa transformaciones adecuadas. Debe
aadir tambin una tarea que limpie la tabla VentasSQL.

Poblar_Ventas_Stg

Origen de datos
GourmetStore_Stg..VentasSQL
Disear la consulta.
Destino de datos
GourmetStore_Stg..Ventas_Stg

Establecer el flujo de las tareas del paquete

Fijar el flujo de ejecucin de las tareas tal como se muestra en la figura.

Creacin del paquete SSIS para poblar GourmetStore_DM a partir


de GourmetStore_Stg

Preparacin del escenario

Ejecute el script Crea_GourmetStore_DM para crear el modelo dimensional


GourmetStore_DM.

Creacin del paquete Poblar_GourmetStore_DM en la solucin


Poblar_GourmetStore_Stg1 de SQL Server Integration Services

Debe ser desarrollado por los alumnos en el aula.

You might also like