02-Taller de BISQL - SSIS - Procesos ETL
April 4, 2023 | Author: Anonymous | Category: N/A
Short Description
Download 02-Taller de BISQL - SSIS - Procesos ETL...
Description
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 análisis de las ventas de Gourmet Store. Store. El modelo nos permitirá implementar la base de datos GourmetStore_DM GourmetStore_DM.. Para poblar la base de datos GourmetStore_DM GourmetStore_DM con con la data proveniente del documento Excel Ventas-MP95.xls Ventas-MP95.xls y y de la base de datos d atos Northwind Northwind utilizaremos 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 GourmetStore_Stg..
Creación del paquete SSIS para poblar GourmetStore_Stg a partir de Northwind Creación de la solución Poblar_GourmetStore_S Poblar_GourmetStore_Stg1 tg1 de SSIS Creación de la solución 1. Aplicación: SQL Server Data Tools. 2. Menú: Archivo, Nuevo, Proyecto. 3. Plantilla: Business Intelligence, Integration Services, Proyecto de Integration...Business Intelligence. 4. Ubicación: seleccionar su carpeta de trabajo. 5. Nombre: Poblar_GourmetStore_Stg1. 6. Crear directorio para la solución: 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. Renombrar Clic en Cambiar nombre. 3. a Poblar_desde_Northwind.dtsx. Definir en el proyecto una conexión a Northwind y a GourmetStore_Stg 1. 2. 3. 4. 5.
Explorador de soluciones: clic secundario en Administradores de conexiones. Clic en Nuevo administrador de conexiones. Tipo de administrador de conexión: OLEDB. Clic en Agregar. Clic en Nueva (si la conexión no existe ejecute los pasos del 6 al 9; si la conexión existe, selecciónela 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 orígenes. 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 página 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 página Asignaciones. 24. Columna de entrada: mapear CategoryID a idCategoria. id Categoria. 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 d atos Poblar_Producto_Stg 1. 2. 3. 4. 5.
Ficha Flujo de control. Cuadro de herramientas: arrastrar Tarea Flujo de datos a Flujo de control. Renombrar Tarea Flujo de datos a Poblar_Producto_Stg. Seleccionar ficha Flujo de datos. Cuadro de herramientas: arrastrar Asistente de orígenes.
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 di gite 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 página Asignaciones. 23. Mapear las columnas. 24. Clic en Aceptar.
Limpiar tablas en GourmetStore_ GourmetStore_Stg Stg Definir la tarea de ejecución SQL Limpiar_GourmetStore_Stg 1. 2. 3. 4. 5. 6.
Ficha Flujo de control. Cuadro de herramientas: arrastrar Tarea Ejecutar SQL a Flujo de control. Renombrar Tarea Ejecutar SQL a Limpiar_GourmetStore_Stg. Limpi ar_GourmetStore_Stg. Clic secundario en Limpiar_GourmetStore_Stg, Editar. Connection: localhost.GourmetStore_Stg. 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 TRUNCATE TABLE TABLE PaisCliente_Stg 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. Añadir al proyecto una conexión a la base de datos Matsukawa. 2. Ficha Flujo de control: añadir Tarea de flujo de datos y renombrarla a Poblar_PaisCliente_Stg. 3. Añadir Asistente de orígenes que lee Customers de Northwind. Renombrar a Leer_Customers. 4. Añadir una transformación Búsqueda y renombrarla a Buscar_en_Paises. 5. Unir Leer_Customers con Buscar_en_Paises. 6. Doble clic en Buscar_en_Paises. 7. Página General: en Especificar cómo tratar las filas sin entradas coincidentes, Redirigir filas a salida de errores. 8. Página Conexión: seleccionar localhost.Mats l ocalhost.Matsukawa, ukawa, tabla Paises. 9. Página Columnas: en Columnas de entrada disponibles, clic secundario en Country, Editar asignaciones. 10. En Columna de entrada: Country. 11. En Columna de búsqueda: nomPais, clic en Aceptar. 12. En Columnas de búsqueda disponibles: seleccionar codPais. 13. En Alias de salida: digitar codigoPais. 14. Página Salida de error: en Error seleccionar Redirigir fila, en Truncamiento seleccionar Redirigir fila. 15. Clic en Aceptar. 16. Añadir 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. Añadir 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 búsqueda, 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. 2. 3. 4.
Llevar la flecha de flujo desde Poblar_Categoria_Stg a Poblar_Producto_Stg. Seleccionar ambas tareas de flujo de datos. Clic secundario sobre la selección, Agrupar. 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 d atos 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 d atos 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 d atos 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 d atos 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, año Definir la tarea flujo de datos d atos Poblar_Tiempo_Stg 1. 2. 3. 4.
Definir la tarea de flujo de datos Panel Flujo de control. Cuadro de herramientas: Tarea Flujo de datos. Renombrar Tarea Flujo de datos a Poblar_Tiempo_Stg. Ficha Flujo de datos.
Definir el origen de datos 1. Cuadro de herramientas: Asistente de orígenes. 2. Seleccionar tipo de origen: SQL Server. 3. 4. 5. 6. 7. 8.
Seleccionar administradores de conexiones: localhost.Northwind. Clic en Aceptar. Renombrar Origen de OLE DB a Leer_Orders. Clic secundario, Editar. Modo de acceso a datos: Comando SQL. 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 año FROM Orders. 9. Clic en Aceptar. 1. 2. 3. 4.
Definir transformaciones de datos Cuadro de herramientas: Conversión de datos. Unir Leer_Orders con Conversión de datos. Clic secundario en Conversión de datos, Editar. 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, Transformación, Aceptar. 7. Clic secundario en Componente de script, Propiedades. 8. Propiedad ScriptLanguage: cambiar a Microsoft Visual Basic 2010. 9. Unir Conversión de datos con Componente de script. 10. Clic secundario en Componente de script, Editar.
11. Página Columnas de entrada: seleccione nMes y nTrimestre. 12. Página Entradas y salidas: expanda el nodo Salida 0, seleccione la carpeta Columnas de salida. 13. Clic en Agregar columna, añada la columna cMes con DataType cadena Unicode [DT_WSTR] y Length 10. 14. Añada la columna cTrimestre con DataType cadena Unicode [DT_WSTR] y Length 15. 15. Página Script: clic en Editar script. 16. Añada al script el contenido del archivo ActiveX_Tiempo.txt. 17. Cierre el editor de script, clic en Aceptar. 1. 2. 3. 4. 5. 6. 7. 8.
Definir el destino de datos Cuadro de herramientas: Asistente de destinos. Seleccionar tipo de destino: SQL Server. Seleccionar Administradores de conexiones: localhost.Northwind_Stg, Aceptar. Renombrar Destino de OLE DB a Escribir_Tiempo_Stg. Unir Componente de script con Escribir_Tiempo_Stg. Clic secundario en Escribir_Tiempo_Stg, Editar. Nombre de la tabla o la vista: Tiempo_Stg. Página Asignaciones: verificar el mapeo de columnas.
Poblar_Ventas_Stg Origen de datos Northwind y GourmetStore_Stg Diseñar la consulta. Destino de datos GourmetStore_Stg..Ventas_Stg Definir la tarea flujo de datos d atos 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 ejecución de las tareas tal como se muestra en la figura.
Creación 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 conexión a VentasMP-95 de Excel 3. Clic secundario en panel Administradores de conexiones del paquete, Nueva conexión. 4. Tipo de administrador de conexión: EXCEL, clic en Agregar. 5. Botón Examinar: ubique el archivo VentasMP-95.xls. 6. Casilla La primera fila tiene nombres de columna: marcada. 7. Clic en Aceptar. 8. Renombre la conexión a Conexión_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, descripción, categoría 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, año Destino de datos GourmetStore_Stg..Tiempo_Stg fecha, dia, mes, trimestre, año
Tarea de flujo f lujo de datos VentasExcel_a_ VentasExcel_a_VentasSQL 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 añadir también una tarea que limpie li mpie la tabla VentasSQL.
Poblar_Ventas_Stg Origen de datos GourmetStore_Stg..VentasSQL Diseñar la consulta.
Destino de datos GourmetStore_Stg..Ventas_Stg
Establecer el flujo de las tareas del paquete Fijar el flujo de ejecución de las tareas tal como se muestra en la figura.
Creación del paquete SSIS para poblar GourmetStore_DM a partir de GourmetStore_Stg Preparación del escenario Ejecute el script Crea_GourmetStore_DM Crea_GourmetStore_DM para GourmetStore_DM.. GourmetStore_DM
crear
el
modelo
dimensional
Creación del paquete Poblar_GourmetStore_DM en la solución Poblar_GourmetStore_Stg1 Poblar_Gourme tStore_Stg1 de SQL Server Integration Services Debe ser desarrollado por los alumnos en el aula.
View more...
Comments