Sunteți pe pagina 1din 21

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Objetivos Desarrollar un proceso sencillo de ETL hacia una base de datos relacional. Familiarizarse con la herramienta de ETL de Microsoft Integration Services.

Actividades Creacin de un proyecto de Integration Services. Perfilamiento de datos. Carga de una dimensin sencilla. Carga de una tabla de hechos.

En este taller se pretende guiar al estudiante a travs de las etapas del proceso de ETL necesarias para cargar una bodega de datos. El taller parte de un escenario en el que ya se ha definido la estructura fsica de un data mart: las tablas se encuentran creadas de acuerdo a las indicaciones de la metodologa Kimball y se desea disear un flujo de trabajo (workflow) para la carga rutinaria de este data mart. Para apoyar el proceso de ETL se emplear la herramienta Integration Services de Microsoft. Los captulos 5 y 6 del libro The Microsoft Data Warehouse Toolkit With SQL Server 2005 presentan un bosquejo de las labores que se deben ejecutar en un proceso de ETL con Integration Services. A continuacin se muestra el modelo de datos para el data mart que se desea cargar:

En el taller se presentaran los pasos necesarios para cargar una dimensin sencilla (SalesTerritory) y una tabla de hechos (FactSalesQuota).

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Creacin de un proyecto de Integration Services Inicie la mquina virtual ubicada en D:\ISIS\ISIS3301\Windows Server 2008.vmx en las mquinas de la sala Waira 1. 1. Haga clic sobre la pantalla de bienvenida y presione Ctrl+ Alt + Insert para iniciar sesin. Ingrese como administrador usando la contrasea BI2010un1andes. 2. Ubique y ejecute desde el men de inicio la aplicacin Business Intelligence Development Studio. 3. En el men principal seleccione la opcin Archivo > Nuevo > Proyecto 4. En el dilogo seleccione Nuevo Proyecto de Integration Services e introduzca un nombre (ej. Laboratorio ETL). Componentes de un proyecto A continuacin se hace una breve descripcin de los componentes bsicos de un proyecto de Integration Services. Paquetes La unidad bsica de funcionamiento de Integration Services son los paquetes, un paquete es un programa ejecutable que encapsula un flujo de trabajo junto con la lgica de negocio. Tareas Las tareas son unidades de trabajo. Las tareas se pueden reunir en contenedores con el fin de agrupar una unidad de funcionalidad. Existen diferentes tipos de tareas, en este taller se trabajar con dos de ellas: Flujo de Datos y Perfilamiento de Datos. Para la tarea de Flujo de Datos existe una pestaa especial en la cual se pueden arrastrar elementos (sub-tareas) que permiten extraer datos de una ubicacin, transformarlos y almacenarlos en otro destino. Perfilamiento de datos La primera tarea de un ejercicio de ETL consiste en entender la estructura de los datos de la fuente. Para este caso en particular se va a evaluar el estado de vista VSalesPerson de la base de datos de ejemplo Adventure Works. Integration Services facilita esta actividad a travs del uso de la tarea de generacin de perfiles de datos. Siga los siguientes pasos para realizar el perfilamiento de los datos. 1. En el proyecto creado en la seccin anterior, renombre Package.dtsx a Employee_Profile _Data.dtsx en el explorador de soluciones. 2. Haga doble clic en el paquete que acaba de renombrar para abrir la vista de diseo.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

3. La tarea de perfilamiento de datos requiere de una conexin de ADO.NET para conectarse a la base de datos fuente. Para hacer esto realice clic derecho en la seccin Administradores de Conexin (ubicada en la parte inferior de la vista de diseo del paquete) y seleccione la opcin Nueva Conexin de ADO.NET 4. En el dialogo de conexin oprima el botn de la opcin Nueva 5. Elija como servidor la instancia local y cmo base de datos AdventureWorks y oprima aceptar y nuevamente aceptar para cerrar el dilogo de conexin. 6. Ubique en la parte izquierda el men lateral Cuadro de herramientas y arrastre la tarea de generacin de perfiles de datos a la pestaa Flujo de control del diseador. 7. Realice doble clic en la tarea recin creada para iniciar el asistente. 8. Oprima el botn Perfil Rpido ubicado en la ficha General del dilogo.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

9. Llene las opciones del formulario de acuerdo a la imagen y oprima Aceptar.

10. Vuelva a la ficha General y en la propiedad Destination elija Nueva conexin de archivos 11. Elija como Tipo de uso - Crear Archivo y nombre el archivo C:\Users\Administrador\Desktop\Employee_Profile.xml. Haga clic en Aceptar y cierre el dilogo oprimiendo nuevamente Aceptar.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

12. Para ejecutar el perfilamiento haga clic en el botn Iniciar depuracin ubicado en la barra del men superior mostrada en la imagen.

13. Los resultados se almacenan en el archivo Employee_Profile.xml y pueden ser evaluados usando la herramienta Data Profile Viewer. 14. Inicie la aplicacin Data Profile Viewer desde el men de inicio. 15. En el men principal, elija la opcin abrir para el archivo Employee_Profile.xml. 16. Cambie a la vista por columnas oprimiendo el botn mostrado en la imagen.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

17. Revise el perfil de claves candidatas (al final). Este perfil le permite encontrar violaciones a las llaves. Cul columna podra ser la llave de esta vista? 18. Revise el perfil de dependencia funcional. Cul es la relacin entre este grupo de columnas: Territory Group y TerritoryName, StateProvinceName y CountryRegionName? 19. En el rbol de perfiles, expanda la columna TerritoryName y seleccione Perfiles de distribucin de longitud de columnas. 20. Dentro del panel Distribucin de longitud TerritoryName, haga doble clic sobre la entrada que tiene longitud 6. En la parte inferior aparece un explorador de filas que muestra las tuplas que cumplen esta condicin. Cules es la longitud mnima y mxima del campo TerritoryName? 21. Dentro de los sub-nodos de TerritoryName ubicados en el rbol que muestra los perfiles, seleccione Perfiles de proporcin de columnas NULL. 22. La columna Porcentaje de NULL, muestra el porcentaje de filas de toda la tabla que tiene valores nulos. Esto es valioso para las consideraciones ETL, ya que muestra en detalle cundo es necesario realizar un tratamiento den nulos (ste es uno de los procesos de transformacin ms comunes). 23. A continuacin, seleccione el sub-nodo Perfiles de distribucin de valores de columna, ubicado bajo TerritoryName y observe la salida en el visor de resultados. Cuntos valores diferentes existen? Cuntos valores se utilizan solamente una vez en la tabla? 24. En el panel de navegacin izquierdo, expanda el nodo Phone y haga clic en la columna Perfil de patrn de columnas. Haga doble clic en el patrn No. 1 de la lista ubicada a la derecha. La columna Perfiles de patrn utiliza la sintaxis de expresiones regulares para mostrar el patrn o el conjunto de patrones que contienen los datos de la columna. 25. El ltimo resultado para revisar es el Perfil de estadsticas de columna. Este es aplicable nicamente a los tipos de datos relacionados con los nmeros (integer, float, decimal, numrico) y las fechas (las fechas slo permiten clculos mnimo y mximo). En la vista de rbol perfiles a la izquierda del visor de datos de perfil, expanda el nodo SalesYTD y haga clic en el sub-nodo Perfiles de estadsticas de columna. Cuatro resultados se calculan sobre los valores de la columna numrica: mnimo, mximo, promedio y desviacin estndar.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Los Perfiles de estadsticas de columnas son muy valiosos para la evaluacin de las fuentes de las tablas de hechos, ya que las medidas en stas casi siempre son numricas, con algunas excepciones. En general, la salida de la tarea de generacin de perfiles de datos permite identificar la calidad y la gama de valores en la fuente. Naturalmente, esto ayuda a formular el diseo del ETL a partir de los datos de salida.

Decisiones basadas en los resultados del perfilamiento de datos 1. El primer paso en el perfilamiento de datos consiste en verificar la unicidad de las llaves primarias y las restricciones de integridad referencial. Esto se puede verificar con ayuda de los resultados de los perfiles de claves candidatas y de proporcin de columnas NULL. 2. En el ejemplo, la columna TerritoryName tiene aproximadamente una proporcin de nulos del 17%. En el modelo dimensional de destino, esto puede ser un problema, porque la dimensin Employee tiene una llave fornea sustituta a la dimensin Sales Territory. Dado que no existe integridad en esta columna pueden existir registros que no tengan un Territorio de ventas correspondiente. Este es un tema al que se necesita hacer frente ms tarde en la seccin de ETL de la dimensin. 3. Otro resultado til de la tarea de generacin de perfiles son las longitudes de las columnas y las estadsticas presentadas. Es importante hacer una optimizacin en los tipos de datos, porque cuando se tiene una columna de origen con un tipo de datos muy grande, la mayor parte del espacio no se utiliza [como un char (1000)]. Carga de una dimensin sencilla Cuando se realiza el ETL de las dimensiones se persiguen los siguientes objetivos: Identificar las llaves fuente que permiten distinguir de forma nica un registro del origen al que se le asigna posteriormente una llave sustituta. Ejecutar las transformaciones de datos necesarias para ajustar el origen de datos a la estructura de las dimensiones.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Manejar los diferentes tipos de cambio para cada columna del origen de datos o actualizar los registros de la dimensin. Integration Services incluye un tipo de tarea llamada Transformacin Dimensin de Variacin Lenta (SCD) para ayudar en este proceso.

La primera tarea del proceso de extraccin corresponde a la carga de la dimensin DimSalesTerritory desde la tabla [Sales].[SalesTerritory] del sistema fuente, para hacer esto siga los siguientes pasos: 1. Cree un nuevo paquete y llmelo ETL_DimSalesTerritory.dtsx. 2. Los datos se van a extraer de la base de datos AdventureWorks y se van a cargar a la bodega AdventureWorksDW2008. Cree dos conexiones OLE DB en su paquete para conectarse a cada fuente de la siguiente manera: a. Desde la seccin Administradores de conexin ubicada en la parte inferior de la vista de diseo del paquete haga clic derecho y seleccione la opcin Nueva conexin OLE DB. b. En el administrador de conexiones OLE DB oprima el botn Nueva c. Elija como nombre de servidor localhost. d. Escriba el nombre de la base de datos (AdventureWorks y AdventureWorksDW2008 para la primera y la segunda conexin respectivamente). Al terminar oprima el botn Aceptar. e. Repita el proceso anterior para crear la conexin a AdventureWorksDW2008. 3. Desde el Cuadro de herramientas arrastre una Tarea de flujo de datos hasta el diseador del paquete. 4. Para modificar la tarea recin creada, seleccinela y dirjase a la pestaa Flujo de Datos. 5. Desde el Cuadro de herramientas arrastre un elemento Origen de OLE DB al rea de trabajo y haga doble clic sobre l para acceder al dilogo de configuracin.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

6. Seleccione en el administrador de conexiones la base de datos AdventureWorks y la tabla [Sales].[SalesTerritory] cmo se muestra a continuacin:

7. Seleccione Columnas (en la lista izquierda del dilogo). 8. En la tabla Columnas externas disponibles seleccione los atributos TerritoryID, Name, CountryRegionCode y Group.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

9. Cambie los nombres de las columnas de salida de la siguiente manera (Al finalizar oprima Aceptar):

Hasta este punto usted ha definido la primera tarea que se conecta a la base de datos OLTP, extrae los campos que se desean cargar a la bodega y los renombra para ser identificados fcilmente. 10. Arrastre el elemento de flujo de datos llamado Bsqueda hasta el rea de trabajo y conecte la flecha verde del Origen de OLE DB que acaba de crear con el nuevo elemento.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

11. Haga doble clic sobre la transformacin de Bsqueda y en las opciones del grupo General seleccione Cach completa en el modo de cach y Administrador de conexiones OLE DB en el tipo de conexin. 12. En la pgina de propiedades de Conexin establezca el administrador de conexiones y use la tabla [Person].[CountryRegion]. 13. En la pgina de propiedades de Columnas arrastre el atributo CountryRegionCode desde las columnas de entrada disponibles hasta el atributo con el mismo nombre en las columnas de bsqueda disponibles.

14. Haga clic sobre el checkbox del campo Name que se encuentra dentro de las columnas de bsqueda disponibles y cambie su alias de salida a SalesTerritoryCountry.

Con esta transformacin se est obteniendo el nombre de la regin del pas realizando un join con la tabla CountryRegion. Ahora es necesario especificar un tratamiento a los atributos de la dimensin que pueden cambiar. Para esto se usa el elemento Tarea de dimensin de variacin lenta.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

15. Arrastre la Tarea de dimensin de variacin lenta al rea de trabajo y conctela con la flecha verde de la tarea de bsqueda.

16. En el dilogo Seleccin de entrada y salida, dentro de la lista desplegable Salida, seleccione la opcin Salida de entradas coincidentes de bsqueda. Presione Aceptar para cerrar el dilogo. 17. Haga doble clic sobre el elemento que acaba de crear para iniciar el Asistente para dimensiones de variacin lenta. 18. Haga clic en Siguiente. 19. Establezca los valores de las opciones como se muestra a continuacin:

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

20. La siguiente pantalla del asistente sirve para identificar el tipo de cambio que tendr cada columna. Seleccione Atributo variable para cada una de ellas

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Esto corresponde con un atributo SCD tipo 1, en el cual se sobrescribe el valor anterior con el ms reciente. 21. Deje las opciones por defecto en las siguientes pantallas oprimiendo Siguiente hasta llegar al fin del asistente. 22. Investigue el propsito de las transformaciones que acaba de crear con el asistente. 23. Para probar el funcionamiento del paquete dirjase al men superior y oprima el botn Iniciar depuracin.

24. Al finalizar la ejecucin podr ver que todas las tareas tienen un color verde. Esto quiere decir que la carga a la bodega de datos se realiz correctamente. Para terminar la depuracin, haga clic en el botn Detener depuracin, ubicado en la parte superior derecha de la aplicacin.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

Carga de una tabla de hechos Una vez cargadas las tablas de las dimensiones, se puede proceder a realizar la carga de la tabla de hechos. Este proceso suele ser ms sencillo ya que la mayora de las veces slo incluye operaciones de insercin o actualizacin. A continuacin se muestran los pasos necesarios para realizar la carga de la tabla FactSalesQuota: 1. Cree un paquete llamado ETL_FactSalesQuota.dtsx. 2. Agregue las conexiones OLE DB necesarias para conectarse a las bases de datos AdventureWorks y AdventureWorksDW2008. 3. Cree una nueva tarea de Flujo de datos y dentro de la pestaa Flujo de datos arrastre una tarea Origen de OLE DB. Configure el origen para conectarse a AdventureWorks y elija como modo de acceso a datos un Comando SQL. En el campo Texto de comando SQL ingrese lo siguiente:
SELECT QuotaDate, SalesQuota, NationalIDNumber as EmployeeNationalIDAlternateKey FROM Sales.SalesPersonQuotaHistory INNER JOIN HumanResources.Employee ON SalesPersonQuotaHistory.SalesPersonID = Employee.EmployeeID

4. Para obtener las llaves sustitutas de las dimensiones arrastre una transformacin de Bsqueda y conctela con el Origen OLE DB que acaba de crear.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

5. Configure la Bsqueda como se muestra a continuacin:

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

6. Establezca las propiedades de la pgina de Columnas de la siguiente forma:

7. Arrastre y conecte un elemento de Columna derivada despus del elemento Bsqueda.

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

8. En el dilogo Seleccin de entrada y salida, dentro de la lista desplegable Salida, seleccione la opcin Salida de entradas coincidentes de bsqueda. Presione Aceptar para cerrar el dilogo. 9. Haga doble clic en el elemento recin creado y defina las siguientes columnas derivadas: a. DateKey: YEAR([QuotaDate])*10000 + MONTH([QuotaDate])*100 DAY([QuotaDate]) b. CalendarYear: (DT_I2) YEAR([QuotaDate]) c. CalendarQuarter: (DT_UI1) DATEPART( q ,[QuotaDate]) El dilogo debe verse de la siguiente forma: +

Si obtiene un error al copiar la expresin de la columna CalendarQuarter desde Word, asegrese de reemplazar las comillas que aparecen alrededor de q: (DT_UI1) DATEPART( q ,[QuotaDate])

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

10. Agregue un elemento de Destino de OLE DB y conctelo a al elemento anterior.

11. Haga doble clic sobre ste y establezca las opciones de la siguiente manera:

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

12. En la pgina Asignaciones, establezca los valores de las columnas de entrada y salida como se ve a continuacin:

Universidad de los Andes Departamento de Ingeniera de Sistemas y Computacin Laboratorio de Inteligencia de Negocios - 2010 Laboratorio ETL

13. Pruebe la funcionalidad del paquete. En los pasos anteriores usted emple como fuente de datos una consulta sobre la BD OLTP en la que inclua los campos QuotaDate, SalesQuota y EmployeeNationalIDAlternateKey. En la tarea de bsqueda realiz un join con la tabla DimEmployee para obtener la llave fornea de la tabla de hechos hacia dicha dimensin. Con la tarea Columna derivada, obtuvo los campos DateKey, CalendarYear y CalendarQuarter a travs de expresiones T-SQL. Finalmente us la tarea Destino de OLE DB para cargar los campos en la tabla FactSalesQuota.

S-ar putea să vă placă și