lab 01- creando un etl con sql server- intregration services (1)

Upload: paulanataliaamadoordonez

Post on 07-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    1/35

    https://msdn.microsoft.com/es-es/library/ms169917(d=printer,v=sql.105).aspx  

    Tutorial: Crear un paquete ETL sencillo

    Microsoft Integration Services es una plataforma para crear soluciones de integración de datos de alto rendimiento,

    incluidos los paquetes de extracción, transformación y carga (ETL) para el almacenamiento de datos. IntegrationServices incluye herramientas gráficas y asistentes para crear y depurar paquetes; tareas para realizar funciones deflujo de trabajo tales como operaciones FTP, ejecución de instrucciones SQL y envío de mensajes de correoelectrónico; orígenes y destinos de datos para extraer y cargar datos; transformaciones para limpiar, agregar,mezclar y copiar datos; un servicio de administración, el servicio Integration Services para administrar la ejecucióny el almacenamiento de paquetes e interfaces de programación de aplicaciones (API) para programar el modelo deobjetos de Integration Services.

    En este tutorial, aprenderá a utilizar el Diseñador de SSIS para crear un paquete de Microsoft SQL Server IntegrationServices sencillo. El paquete que cree toma los datos de un archivo plano, formatea de nuevo lo datos y luego insertadichos datos en una tabla de hechos. En las lecciones siguientes, el paquete se expandirá para mostrar la creaciónde bucles, configuraciones de paquete, registro y flujo de errores.

    Lección 1: Crear el proyecto y el paquete básico

    En esta lección, creará un paquete ETL que extrae datos de un único origen de archivo plano, transforma los datosutilizando dos componentes de la transformación de búsqueda y escribe dichos datos en la tabla de hechosFactCurrencyRate en AdventureWorksDW. Como parte de esta lección, aprenderá a crear paquetes nuevos,agregar y configurar orígenes de datos y conexiones de destino, y trabajar con nuevos componentes de flujo decontrol y flujo de datos.

    Descripción de los requisitos de paqueteAntes de crear un paquete, debe saber qué formato se utiliza en los datos de origen y de destino. Una vez queconozca ambos formatos de datos, estará listo para definir las transformaciones necesarias para asignar los datosde origen al destino.

    Información sobre el origenEn este tutorial, los datos de origen son un conjunto de datos de moneda históricos que se encuentra en el archivoplano SampleCurrencyData.txt. Los datos de origen tienen las cuatro columnas siguientes: tipo de cambio medio dela moneda, una clave de moneda, una clave de fecha y el tipo de cambio de final del día.

    A continuación se muestra un ejemplo de datos de origen del archivo SampleCurrencyData.txt:

    1.00010001 ARS 9/3/2001 0:00 0.99960016 

    1.00010001 ARS 9/4/2001 0:00 1.001001001 

    1.00020004 ARS 9/5/2001 0:00 0.99990001 

    1.00020004 ARS 9/6/2001 0:00 1.00040016 

    1.00050025 ARS 9/7/2001 0:00 0.99990001 

    1.00050025 ARS 9/8/2001 0:00 1.001001001 

    1.00050025 ARS 9/9/2001 0:00 1 

    1.00010001 ARS 9/10/2001 0:00 1.00040016 

    1.00020004 ARS 9/11/2001 0:00 0.99990001 

    https://msdn.microsoft.com/es-es/library/ms169917(d=printer,v=sql.105).aspxhttps://msdn.microsoft.com/es-es/library/ms169917(d=printer,v=sql.105).aspxhttps://msdn.microsoft.com/es-es/library/ms169917(d=printer,v=sql.105).aspx

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    2/35

    1.00020004 ARS 9/12/2001 0:00 1.001101211 

    Cuando se trabaja con datos de origen de un archivo plano, es importante entender el modo en que el administradorde conexión de archivos planos interpreta los datos del archivo plano. Si el origen de archivo plano es Unicode, eladministrador de conexión de archivos planos define todas las columnas como [DT_WSTR], con un ancho de columnapredeterminado de 50. Si el origen de archivo plano tiene la codificación ANSI, las columnas se definen como[DT_STR], con un ancho de columna de 50. Es probable que tenga que cambiar estos valores predeterminados paraque los tipos de columna de cadena sean más adecuados para los datos. Para ello, deberá saber cuál es el tipo dedatos del destino en el que se escribirán los datos y luego seleccionar el tipo correcto dentro del administrador deconexión de archivos planos.

    Información sobre el destinoEl destino último de los datos de origen es la tabla de hechos FactCurrencyRate de AdventureWorksDW. La tablade hechos FactCurrencyRate tiene cuatro columnas y tiene relaciones con dos tablas de dimensiones, como semuestra en la tabla siguiente.

    Nombre de columna Tipo de datos Tabla de búsqueda Columna de búsqueda

    AverageRate float Ninguna Ninguna

    CurrencyKey int (FK) DimCurrency CurrencyKey (PK)

    TimeKey int (FK) DimTime TimeKey (PK)

    EndOfDayRate float Ninguna Ninguna

    Asignar datos de origen para que sean compatibles con el destinoEl análisis de formatos de datos de origen y destino indica que las búsquedas serán necesarias para los valoresCurrencyKey  y TimeKey. Las transformaciones que realizarán estas búsquedas obtendrán los valores deCurrencyKeyy TimeKey utilizando las claves alternativas de las tablas de dimensiones DimCurrency y DimTime.

    Columna de archivo plano Nombre de tabla Nombre de columna Tipo de datos

    0 FactCurrencyRate AverageRate Float

    1 DimCurrency CurrencyAlternateKey nchar (3)

    2 DimTime FullDateAlternateKey Datetime

    3 FactCurrencyRate EndOfDayRate Float

    Tarea 1: Crear un nuevo proyecto de Integration Services

    La primera tarea al crear un paquete en Integration Services es crear un proyecto de Integration Services. Esteproyecto incluye las plantillas para los objetos (orígenes de datos, vistas de orígenes de datos y paquetes) que seutilizan en una solución de transformación de datos.

    Los paquetes que creará en este tutorial de Integration Services interpretan los valores de los datos dependientesde la configuración regional. Si no tiene configurado el equipo para usar la opción de configuración regional Inglés(Estados Unidos), debe establecer propiedades adicionales en el paquete. Los paquetes utilizados en las lecciones 2a 5 se copian del paquete creado en la lección 1, y no necesita actualizar las propiedades dependientes de laconfiguración regional en los paquetes copiados.

    Para crear un nuevo proyecto de Integration Services

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    3/35

    1.  En el menu Inicio, seleccione Todos los programas, seleccione Microsoft SQL Server y, haga clic en

    SQL Server Business Intelligence Development Studio.

    2.  En el menú Archivo, seleccione Nuevo y haga clic en Proyecto para crear un proyecto de Integration

    Services.

    3. 

    En el cuadro de diálogo Nuevo proyecto, seleccione Proyecto de Integration Services  en el panelPlantillas.

    4.  En el cuadro Nombre, cambie el nombre predeterminado por SSIS Tutorial. Opcionalmente, desactive la

    casilla de verificación Crear directorio para la solución.

    5.  Acepte la ubicación predeterminada o haga clic en Examinar para desplazarse a la carpeta que desee

    utilizar.

    6.  En el cuadro de diálogo Ubicación del proyecto, haga clic en la carpeta y en Abrir.

    7.  Haga clic en Aceptar.

    De forma predeterminada, se creará un paquete vacío, denominado Package.dtsx, que se agregará alproyecto.

    8.  En la barra de herramientas del Explorador de soluciones, haga clic con el botón secundario en

    Package.dtsx, haga clic en Cambiar nombre y cambie el nombre del paquete predeterminado por Lesson

    1.dtsx.

    9.  Cuando se le solicite que cambie el nombre del objeto del paquete, haga clic en Sí.

    Para establecer las propiedades dependientes de la configuración regional1.  En el menú Ver, haga clic en Ventana Propiedades.

    2.  En la ventana Propiedades, establezca la propiedad LocaleID en Inglés (Estados Unidos).

    Tarea 2: Agregar y configurar un administrador de conexiones dearchivos planos

    En esta tarea, agregará un administrador de conexiones de archivos planos al paquete que acaba de crear. Unadministrador de conexión de archivos planos permite a un paquete extraer datos de un archivo plano. Mediante eladministrador de conexión de archivos planos puede especificar el nombre y la ubicación del archivo, la configuraciónregional y la página de códigos, y el formato del archivo, incluyendo los delimitadores de columna, que debenaplicarse cuando el paquete extrae datos del archivo plano. Además, puede especificar manualmente el tipo de datospara columnas individuales, o utilizar el cuadro de diálogo Sugerir tipos de columna para asignar automáticamentelas columnas de datos extraídos a los tipos de datos de Integration Services.

    Debe crear un administrador de conexión de archivos planos para cada formato de archivo que utilice. En este tutorialse extraen datos de varios archivos planos que tienen exactamente el mismo formato de datos, por lo que tendráque agregar y configurar solamente un administrador de conexión de archivos planos para el paquete.

    En este tutorial, configurará las propiedades siguientes en el administrador de conexión de archivos planos:

      Nombres de columna  El archivo plano no tiene nombres de columna, por lo que el administrador de

    conexión de archivos planos crea nombres de columna predeterminados. Estos nombres predeterminados

    no son útiles para identificar qué representa cada columna. Para que estos nombres predeterminados sean

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    4/35

    más útiles, debe cambiar los nombres predeterminados por nombres que coincidan con la tabla de hechos

    en la que deben cargarse los datos del archivo plano.

      Asignación de datos  Las asignaciones de tipo de datos que especifique para el administrador de conexión

    de archivos planos se utilizarán en todos los componentes de origen de datos de archivo plano que hagan

    referencia al administrador de conexión. Puede asignar los tipos de datos manualmente utilizando el

    administrador de conexión de archivos planos o utilizar el cuadro de diálogo Sugerir tipos de columna.

    En este tutorial, verá las asignaciones sugeridas en el cuadro de diálogo Sugerir tipos de columna y luego

    realizará manualmente las asignaciones necesarias en el cuadro de diálogo Editor del administrador de

    conexión de archivos planos.

    El administrador de conexión de archivos planos proporciona información de configuración regional acerca del archivode datos. Si no tiene configurado el equipo para usar la opción de configuración regional Inglés (Estados Unidos),debe establecer propiedades adicionales en el cuadro de diálogo Editor del administrador de conexión dearchivos planos.

    Para agregar un administrador de conexión de archivos planos1.  Haga clic con el botón secundario en cualquier punto del área Administradores de conexión y luego haga

    clic en Nueva conexión de archivos planos.

    2.  En el cuadro de diálogo Editor del administrador de conexión de archivos planos, en Nombre del

    administrador de conexión, escriba Sample Flat File Source Data.

    3.  Haga clic en Examinar.

    4.  En el cuadro de diálogo Abrir, busque la carpeta de datos de ejemplo y abra el archivo

    SampleCurrencyData.txt. De forma predeterminada, los datos de ejemplo del tutorial se instalan en la

    carpeta c:\Archivos de programa\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating

    a Simple ETL Package\Sample Data.

    Para establecer las propiedades dependientes de la configuración regional1.  En el cuadro de diálogo Editor del administrador de conexión de archivos planos , haga clic en

    General.

    2.  Establezca Configuración regional en Inglés (Estados Unidos) y Página de códigos en 1252.

    Para cambiar el nombre de las columnas del administrador de conexión de archivos planos1.  En el cuadro de diálogo Editor del administrador de conexión de archivos planos , haga clic en

    Avanzadas.

    2.  En el panel Propiedades, realice los cambios siguientes:

      Cambie la propiedad de nombre Columna 0 por AverageRate.

      Cambie la propiedad de nombre Columna 1 por CurrencyID.

      Cambie la propiedad de nombre Columna 2 por CurrencyDate.

     

    Cambie la propiedad de nombre Columna 3 por EndOfDayRate.

    Nota:

    De forma predeterminada, las cuatro columnas están inicialmente establecidas en el tipo de datos de cadena[DT_STR] con OutputColumnWidth con el valor 50.

    Para volver a asignar tipos de datos de columna

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    5/35

    1.  En el cuadro de diálogo Editor del administrador de conexión de archivos planos, haga clic en Sugerir

    tipos.

    Integration Services sugiere automáticamente los tipos de datos más adecuados en función de las 100

    primeras filas de datos. También puede cambiar estas opciones de sugerencia para obtener más o menos

    datos de ejemplo, especificar el tipo de datos predeterminado para datos enteros o booleanos, o agregar

    espacios como relleno para las columnas de cadena.

    De momento, no cambie las opciones del cuadro de diálogo Sugerir tipos de columna y haga clic en

    Aceptar para que Integration Services sugiera los tipos de datos para las columnas. Esto le devuelve al

    panel Avanzadas del cuadro de diálogo Editor del administrador de conexión de archivos planos ,

    donde puede ver los tipos de datos de columna sugeridos por Integration Services. (Si hace clic en Cancelar,

    no se realizan sugerencias en los metadatos de columna y se usa el tipo de datos predeterminado de cadena

    (DT_STR).)

    En este tutorial, Integration Services sugiere los tipos de datos que se muestran en la segunda columna de

    la siguiente tabla para los datos del archivo SampleCurrencyData.txt. No obstante, los tipos de datos que

    se requieren para las columnas en el destino, que se definirán en una tarea posterior, se muestran en la

    última columna de la tabla siguiente.

    Columna de archivo plano Tipo sugerido Columna de destino Tipo de destino

    AverageRate Float [DT_R4] FactCurrencyRate.AverageRate Float

    CurrencyID String [DT_STR] DimCurrency,CurrencyAlternateKey nchar(3)

    CurrencyDate Date [DT_DATE] DimTime.FullDateAlternateKey datetime

    EndOfDayRate Float [DT_R4] FactCurrencyRate.EndOfDayRate Float

    Los tipos de datos sugeridos para las columnas CurrencyID y CurrencyDate no son compatibles con lostipos de datos de los campos de la tabla de destino. Puesto que el tipo de datos de

    DimCurrency.CurrencyAlternateKey es nchar (3), CurrencyID debe cambiarse de la cadena

    [DT_STR] a la cadena [DT_WSTR]. Adicionalmente, el campo DimTime.FullDateAlternateKey se

    define como tipo de datos DateTime; por consiguiente, CurrencyDate debe cambiarse del tipo de datos

    [DT_Date] a la marca de tiempo de la base de datos [DT_DBTIMESTAMP].

    2.  En el panel de propiedades, cambie el tipo de datos de la columna CurrencyID de cadena [DT_STR] a

    cadena Unicode [DT_WSTR].

    3.  En el panel de propiedades, cambie el tipo de datos de la columna CurrencyDate de fecha [DT_DATE] a

    marca de tiempo de base de datos [DT_DBTIMESTAMP].

    4.  Haga clic en Aceptar.

    Tarea 3: Agregar y configurar un administrador de conexionesOLE DB

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    6/35

    Una vez que haya agregado un administrador de conexiones de archivos planos al origen de datos, la siguiente tareaconsiste en agregar un administrador de conexiones OLE DB para conectarse al destino. Un administrador de conexiónOLE DB permite a un paquete extraer datos de un origen de datos compatible con OLE DB o cargar datos en éste.Mediante el administrador de conexión OLE DB, puede especificar el servidor, el método de autenticación y la basede datos predeterminada de la conexión.

    En esta lección, creará un administrador de conexión OLE DB que utiliza la Autenticación de Windows para conectarsea la instancia local de AdventureWorksDB. Otros componentes que creará más adelante en este tutorial, como la

    transformación Búsqueda y el destino de OLE DB, también harán referencia al administrador de conexión OLE DBque cree.

    Para agregar y configurar un administrador de conexión OLE DB1.  Haga clic con el botón secundario en cualquier punto del área Administradores de conexión y luego haga

    clic en Nueva conexión de OLE DB.

    2.  En el cuadro de diálogo Configurar el administrador de conexión OLE DB, haga clic en Nuevo.

    3.  En Nombre de servidor, escriba localhost.

    Cuando se especifica localhost como el nombre del servidor, el administración de conexión se conecta a la

    instancia predeterminada de SQL Server en el equipo local. Para usar una instancia remota de SQL Server,

    sustituya localhost con el nombre del servidor al que desea conectarse.

    4.  En el grupo Iniciar sesión en el servidor, compruebe que la opción Utilizar autenticación de Windows 

    está seleccionada.

    5.  En el grupo Conectar con una base de datos, en el cuadro Seleccione o escriba un nombre de base

    de datos, escriba o seleccione AdventureWorksDW.

    6.  Haga clic en Probar conexión para comprobar si los parámetros de conexión que ha especificado son

    válidos.

    7.  Haga clic en Aceptar.

    8.  Haga clic en Aceptar.

    9.  En el panel Conexiones de datos del cuadro de diálogo Configurar el administrador de conexión OLE

    DB, compruebe que la opción localhost.AdventureWorksDW está seleccionada.

    10.  Haga clic en Aceptar.

    Tarea 4: Agregar una tarea de flu jo de datos al paquete

    Una vez que ha creado los administradores de conexión para los datos de origen y de destino, la siguiente tareaconsiste en agregar una tarea de flujo de datos al paquete. La tarea de flujo de datos encapsula el motor de flujo de

    datos que mueve datos entre orígenes y destinos, y proporciona la funcionalidad para transformar, limpiar y modificarlos datos a medida que se mueven. En la tarea de flujo de datos se lleva a cabo la mayor parte del proceso deextracción, transformación y carga (ETL).

    Nota:

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    7/35

    SQL Server Integration Services separa el flujo de datos del flujo de control. Esta separación del flujo dedatos del flujo de control es una de las diferencias más importantes entre Integration Services y MicrosoftSQL Server 2000 Data Transformation Services.

    Para agregar una tarea de flujo de datos1.  Haga clic en la ficha Flujo de control.

    2.  En el Cuadro de herramientas, expanda Elementos de flujo de control y arrastre Tarea Flujo de

    datos a la superficiede diseño de la ficha Flujo de control.

    3.  En la superficie de diseño Flujo de control, haga clic con el botón secundario en la Tarea de flujo de

    datos que acaba de agregar, haga clic en Cambiar nombre y cambie el nombre por Extract Sample

    Currency Data.

    Es aconsejable proporcionar nombres únicos a todos los componentes que se agregan a una superficie de

    diseño. Para facilitar su uso y mantenimiento, los nombres deben describir la función que lleva a cabo cada

    componente. Seguir estas directrices de nomenclatura permite que los paquetes de Integration Services

    sean autodocumentados. Los paquetes también pueden documentarse mediante anotaciones. Para obtener

    más información sobre las anotaciones, vea Usar anotaciones en paquetes. 

    4.  Haga clic con el botón secundario en la tarea Flujo de datos, haga clic en Propiedades y, en la ventana

    Propiedades, compruebe que la propiedad LocaleID esté establecida en Inglés (Estados Unidos).

    Step 5: Adding and Configuring the Flat File Source 

    In this task, you will add and configure a Flat File source to your package. A Flat File source is a data flow

    component that uses metadata defined by a Flat File connection manager to specify the format and

    structure of the data to be extracted from the flat file by a transform process. The Flat File source can be

    configured to extract data from a single flat file by using the file format definition provided by the Flat File

    connection manager.

    For this tutorial, you will configure the Flat File source to use the Sample Flat File Source Data connection

    manager that you previously created.

    To add a Flat File Source component

    1. 

    Open the Data Flow designer, either by double-clicking the Extract Sample Currency Data data

    flow task or by clicking the Data Flow tab.

    2.  In the Toolbox, expand Data Flow  Sources, and then drag a Flat File Source onto the design

    surface of the Data Flow tab.

    3. 

    On the Data Flow design surface, right-click the newly added Flat File Source, click Rename, and

    change the name to Extract Sample Currency Data.

    4.  Double-click the Flat File source to open the Flat File Source Editor dialog box.

    5. 

    In the Flat file connection manager box, type or select Sample Flat File Source Data.

    http://msdn.microsoft.com/es-es/library/ms139981.aspxhttp://msdn.microsoft.com/es-es/library/ms139981.aspxhttp://msdn.microsoft.com/es-es/library/ms139981.aspxhttp://msdn.microsoft.com/es-es/library/ms139981.aspx

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    8/35

    6. 

    Click Columns and verify that the names of the columns are correct.

    7.  Click OK.

    8.  Right-click the Flat File source and click Properties.

    9. 

    In the Properties window, verify that the LocaleID property is set to English (United States).

    Tarea 6: Agregar y configurar transformaciones de búsqueda

    Tras configurar el origen de archivo plano para extraer datos del archivo de origen, la siguiente tarea consiste endefinir las transformaciones de búsqueda necesarias para obtener valores para las claves CurrencyKey y TimeKey.Una transformación Búsqueda realiza una búsqueda combinando datos de la columna de entrada especificada en unacolumna de un conjunto de datos de referencia. El conjunto de datos de referencia puede ser una tabla o una vistaexistente, una tabla nueva o el resultado de una instrucción SQL. En este tutorial, la transformación Búsqueda utilizaun administrador de conexión OLE DB para conectar con la base de datos que contiene los datos que constituyen elorigen del conjunto de datos de referencia.

    Nota:

    También puede configurar la transformación de Búsqueda para conectar con una caché que contiene elconjunto de datos de referencia. Para obtener más información, vea Transformación Búsqueda. 

    Para este tutorial, agregará y configurará los dos componentes de la transformación Búsqueda en el paquete:

      Una transformación para realizar una búsqueda de valores de la columna CurrencyKey de la tabla de

    dimensiones DimCurrency basada en la coincidencia de valores de la columna CurrencyID del archivo

    plano.

      Una transformación para realizar una búsqueda de valores de la columna TimeKey  de la tabla de

    dimensiones DimTime basada en la coincidencia de valores de la columna CurrencyDate del archivo plano.En ambos casos, las transformaciones de búsqueda utilizarán el administrador de conexión OLE DB creadoanteriormente.

    Para agregar y configurar la transformación Lookup Currency Key1.  En el cuadro de herramientas, expanda Transformaciones de flujo de datos y arrastre Búsqueda a

    la superficiede diseño de la ficha Flujo de datos. Coloque Búsqueda directamente bajo el origen Extract

    Sample Currency Data.

    2.  Haga clic en el origen de archivo plano Extract Sample Currency Data y arrastre la flecha verde a la

    transformación Búsqueda que acaba de agregar para conectar los dos componentes.

    3.  En la superficie de diseño Flujo de datos, haga clic en Búsqueda en la transformación Búsqueda y cambie

    el nombre por Lookup Currency Key.

    4.  Haga doble clic en la transformación Lookup Currency Key.

    5.  En la página General, realice las selecciones siguientes:

    a.  Seleccione Caché completa.

    b.  En el área Tipo de conexión, seleccione Administrador de conexiones OLE DB.

    6.  En la página Conexión, realice las selecciones siguientes:

    http://msdn.microsoft.com/es-es/library/ms141821.aspxhttp://msdn.microsoft.com/es-es/library/ms141821.aspxhttp://msdn.microsoft.com/es-es/library/ms141821.aspxhttp://msdn.microsoft.com/es-es/library/ms141821.aspx

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    9/35

    a.  En el cuadro de diálogo Administrador de conexiones OLE DB, asegúrese de que se muestra

    localhost.AdventureWorksDW.

    b.  Seleccione Usar los resultados de una consulta SQL  y, a continuación, escriba o copie la

    instrucción SQL siguiente:

    Copiar código

    select * from (select * from [dbo].[DimCurrency]) as refTable

    where [refTable].[CurrencyAlternateKey] = 'ARS'

    OR

    [refTable].[CurrencyAlternateKey] = 'AUD'

    OR

    [refTable].[CurrencyAlternateKey] = 'BRL'

    OR

    [refTable].[CurrencyAlternateKey] = 'CAD'

    OR

    [refTable].[CurrencyAlternateKey] = 'CNY'

    OR

    [refTable].[CurrencyAlternateKey] = 'DEM'

    OR

    [refTable].[CurrencyAlternateKey] = 'EUR'

    OR

    [refTable].[CurrencyAlternateKey] = 'FRF'

    OR

    [refTable].[CurrencyAlternateKey] = 'GBP'

    OR

    [refTable].[CurrencyAlternateKey] = 'JPY'

    OR

    [refTable].[CurrencyAlternateKey] = 'MXN'

    OR

    [refTable].[CurrencyAlternateKey] = 'SAR'

    OR

    [refTable].[CurrencyAlternateKey] = 'USD'OR

    [refTable].[CurrencyAlternateKey] = 'VEB'

    7.  En la página Columnas, realice las selecciones siguientes:

    a.  En el panel Columnas de entrada disponibles, arrastre CurrencyID al panel Columnas de

    búsqueda disponibles y suéltelo en CurrencyAlternateKey.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    10/35

    b.  En la lista Columnas de búsqueda disponibles, active la casilla de verificación a la derecha de

    CurrencyKey.

    8.  Haga clic en Aceptar para volver a la superficie de diseño Flujo de datos.

    9.  Haga clic con el botón secundario en la transformación Lookup Currency Key y haga clic en Propiedades.

    10.  En la ventana Propiedades, compruebe que la propiedad LocaleID esté establecida en Inglés (EstadosUnidos) y la propiedad DefaultCodePage esté establecida en 1252.

    Para agregar y configurar la transformación Lookup Date Key1.  En el cuadro de herramientas, arrastre Búsqueda a la superficie de diseño Flujo de datos. Coloque

    Búsqueda directamente bajo la transformación Lookup Currency Key.

    2.  Haga clic en la transformación Lookup Currency Key y arrastre la flecha verde hasta la transformación

    Búsqueda que acaba de agregar para conectar los dos componentes.

    3.  En el cuadro de diálogo Selección de entrada y salida, en el cuadro de lista Salida, haga clic en Salida

    de entradas coincidentes de búsqueda y, a continuación, haga clic en Aceptar.

    4.  En la superficie de diseño Flujo de datos, haga clic en Búsqueda en la transformación Búsqueda reciénagregada y cambie el nombre por Lookup DateKey.

    5.  Haga doble clic en la transformación Lookup Date Key.

    6.  En la página General, seleccione Caché parcial.

    7.  En la página Conexión, realice las selecciones siguientes:

    a.  En el cuadro de diálogo Administrador de conexiones OLE DB, asegúrese de que se muestra

    localhost.AdventureWorksDW.

    b.  En el cuadro Utilizar una tabla o vista, escriba o seleccione [dbo].[DimTime].

    8.  En la página Columnas, realice las selecciones siguientes:

    a.  En el panel Columnas de entrada disponibles, arrastre CurrencyDate al panel Columnas de

    búsqueda disponibles y suéltelo en FullDateAlternateKey.

    b.  En la lista Columnas de búsqueda disponibles, active la casilla de verificación a la derecha de

    TimeKey.

    9.  En la página Avanzadas, revise las opciones de almacenamiento en memoria caché.

    10.  Haga clic en Aceptar para volver a la superficie de diseño Flujo de datos.

    11.  Haga clic con el botón secundario en la transformación Lookup Date Key y haga clic en Propiedades.

    12.  En la ventana Propiedades, compruebe que la propiedad LocaleID esté establecida en Inglés (EstadosUnidos) y la propiedad DefaultCodePage esté establecida en 1252.

    Tarea 7: Agregar y conf igurar el destino de OLE DB

    Ahora, el paquete puede extraer datos de un origen de archivo plano y transformar dichos datos en un formatocompatible con el destino. La tarea siguiente consiste realmente en cargar los datos transformados en el destino.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    11/35

    Para cargar los datos, debe agregar un destino de OLE DB al flujo de datos. El destino de OLE DB puede utilizar unatabla de bases de datos, una vista o un comando SQL para cargar datos en distintas bases de datos compatibles conOLE DB.

    En este procedimiento, se agrega y configura un destino de OLE DB para utilizar el administrador de conexión deOLE DB creado con anterioridad.

    Para agregar y configurar un destino de OLE DB de ejemplo

    1.  En el cuadro de herramientas, expanda Destinos de flujo de datos y arrastre Destino de OLE DB ala superficie de diseño de la ficha Flujo de datos. Coloque el destino de OLE DB directamente debajo de la

    transformación Lookup DateKey.

    2.  Haga clic en la transformación Lookup Date Key y arrastre la flecha verde hasta el Destino de OLE DB 

    que acaba de agregar para conectar los dos componentes entre sí.

    3.  En el cuadro de diálogo Selección de entrada y salida, en el cuadro de lista Salida, haga clic en Salida

    de entradas coincidentes de búsqueda y, a continuación, haga clic en Aceptar.

    4.  En la superficie de diseño Flujo de datos, haga clic en Destino de OLE DB en el componente Destino de

    OLE DB recién agregado y cambie el nombre por Sample OLE DB Destination.

    5.  Haga doble clic en Sample OLE DB Destination.

    6.  En el cuadro de diálogo Editor de destino de OLE DB, asegúrese de que localhost.AdventureWorksDW 

    está seleccionado en el cuadro Administrador de conexión OLE DB.

    7.  En el cuadro Nombre de la tabla o la vista, escriba o seleccione [dbo].[FactCurrencyRate].

    8.  Haga clic en Asignaciones.

    9.  Compruebe que las columnas de entrada AverageRate, CurrencyKey, EndOfDayRate y TimeKey están

    correctamente asignadas a las columnas de destino. Si hay columnas con el mismo nombre asignadas, la

    asignación es correcta.

    10.  Haga clic en Aceptar.

    11.  Haga clic con el botón secundario en Sample OLE DB Destination y haga clic en Propiedades.

    12.  En la ventana Propiedades, compruebe que la propiedad LocaleID está establecida en Inglés (Estados

    Unidos) y la propiedad DefaultCodePage está establecida en 1252 

    Tarea 8: Facilitar la comprensión del paquete de la lección 1

    Ahora que ha terminado la configuración del paquete de la lección 1, es una buena idea ordenar el diseño del paquete.Si las formas de los diseños de los flujos de datos y de control tienen tamaños aleatorios o no están alineadas oagrupadas, la funcionalidad del paquete puede resultar más difícil de comprender.

    Business Intelligence Development Studio proporciona herramientas que permiten aplicar formato al diseño delpaquete de forma rápida y sencilla. Las características de formato incluyen la capacidad de hacer que las formastengan el mismo tamaño, de alinearlas y de manipular el espaciado horizontal y vertical entre las formas.

    Otra forma de mejorar la comprensión de la funcionalidad de un paquete es agregar anotaciones que la describan.

    En esta tarea utilizará las características de formato de Business Intelligence Development Studio para mejorar eldiseño del flujo de datos y agregará una anotación al flujo de datos.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    12/35

     Para aplicar formato al diseño del flujo de datos1.  Si el paquete de la lección 1 no está abierto todavía, haga doble clic en Lesson 1.dtsx en el Explorador de

    soluciones.

    2.  Haga clic en la ficha Flujo de datos.

    3.  Coloque el cursor en la parte superior derecha de la transformación Extract Sample Currency, haga clic y,

    a continuación, arrastre el cursor por todos los componentes del flujo de datos.

    Ahora todos los componentes del flujo de datos están seleccionados. La forma seleccionada primero (la

    forma cuyos indicadores seleccionados son blancos) dicta el tamaño y la ubicación que se utilizará al aplicar

    formato al diseño.

    4.  En el menú Formato, seleccione Igualar tamaño y, a continuación, haga clic en Ambos.

    5.  Con los objetos del flujo de datos seleccionados, en el menú Formato, seleccione Alinear y haga clic en

    Lados izquierdos.

    Para agregar una anotación al flujo de datos

    1. 

    Haga clic con el botón secundario en cualquier parte de la superficie de diseño del flujo de datos y haga clicen Agregar anotación.

    2.  Escriba o pegue el texto siguiente en el cuadro de anotación.

    El flujo de datos extrae datos de un archivo, busca valores en la columna CurrencyKey de la tabla

    DimCurrency y la columna TimeKey de la tabla DimTime, y escribe los datos en la tabla

    FactCurrencyRate. 

    Para ajustar el texto siguiente en el cuadro de anotación, coloque el cursor donde desee empezar la nueva

    línea y presione las teclas Ctrl y Entrar.

    Si no agrega texto al cuadro de anotación, desaparecerá al hacer clic fuera del cuadro.

    Tarea 9: Probar el paquete del tutorial de la lección 1

    En esta lección, ha llevado a cabo las tareas siguientes:

      Ha creado un proyecto de SSIS.

      Ha configurado los administradores de conexión que el paquete necesita para conectarse a los datos de

    origen y de destino.

      Ha agregado un flujo de datos que toma los datos de un origen de archivo plano, realiza las transformaciones

    de búsqueda necesarias en los datos y configura los datos para el destino.El paquete ya se ha completado. Ha llegado el momento de probarlo.

    Comprobar el diseño del paqueteAntes de probar el paquete, debe comprobar que los flujos de datos y de control de la lección 1 contienen los objetosmostrados en los diagramas siguientes.

    Flujo de control 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    13/35

     

    Flujo de datos 

    Para ejecutar el paquete de tutorial de la lección 11.  En el menú Depurar, haga clic en Iniciar depuración.

    El paquete se ejecutará, dando lugar a la inclusión satisfactoria de 1.097 filas en la tabla de hechos

    FactCurrencyRate de AdventureWorksDW.

    2.  Una vez que se haya completado la ejecución del paquete, en el menú Depurar, haga clic en Detener

    depuración.

    Lección 2: Agregar bucles

    En la Lección 1: Crear el proyecto y el paquete básico, creó un paquete que extraía datos de un solo origen de archivoplano, transformó los datos mediante transformaciones de búsqueda y, por último, cargó los datos en la tabla dehechos FactCurrencyRate de la base de datos de ejemplo AdventureWorksDW.

    No obstante, no es muy habitual utilizar un solo archivo plano para el proceso de extracción, transformación y carga(ETL). Un proceso ETL típico utilizaría datos extraídos de varios orígenes de archivos planos. Para extraer datos de

    varios orígenes, se requiere un flujo de control iterativo. Una de las características más esperadas de MicrosoftIntegration Services es la capacidad de agregar fácilmente una iteración o un bucle a los paquetes.

    Integration Services proporciona dos tipos de contenedores para crear bucles en los paquetes: el contenedor debucles Foreach y el contenedor de bucles For. El contenedor de bucles Foreach utiliza un enumerador para crear elbucle, mientras que el bucle For generalmente utiliza una expresión variable. En esta lección se utiliza el contenedorde bucles Foreach.

    El contenedor de bucles Foreach permite que un paquete repita el flujo de control para cada miembro de unenumerador determinado. Con el contenedor de bucles Foreach puede enumerar lo siguiente:

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    14/35

      Filas de conjuntos de registros ADO e información de esquema

      Estructuras de archivos y directorios

      Variables del sistema, de paquete y de usuario

      Objetos de administración de SQL Server (SMO)

    En esta lección, modificará el paquete ETL simple creado en la lección 1 para beneficiarse del contenedor de bucles

    Foreach. También establecerá variables de paquete definidas por el usuario para que el paquete del tutorial puedaiterarse en todos los archivos planos de la carpeta. Si no ha finalizado la lección anterior, también puede copiar elpaquete de la lección 1 finalizada incluido en el tutorial.

    En esta lección, no modificará el flujo de datos, sólo modificará el flujo de control.

    Tarea 1: Copiar el paquete de la lección 1

    En esta tarea, creará una copia del paquete que ha creado en la lección 1, denominado Lesson 1.dtsx. Si no hacompletado la lección 1, puede agregar al proyecto el paquete completado de la lección 1 que se incluye con eltutorial y, a continuación, copiar dicho paquete. Utilizará esta nueva copia en toda la lección 2.

    Para crear el paquete de la lección 2

    1.  Si Business Intelligence Development Studio no está aún abierto, haga clic en Inicio, seleccione Todos losprogramas, Microsoft SQL Server y, a continuación, haga clic en Business Intelligence Development

    Studio.

    2.  En el menú Archivo, haga clic en Abrir y en Proyecto o solución, haga clic en la carpeta SSIS Tutorial 

    y, a continuación, haga clic en Abrir y, después, haga doble clic en SSIS Tutorial.sln.

    3.  En el Explorador de soluciones, haga clic con el botón secundario en Lesson 1.dtsx y, a continuación, haga

    clic en Copiar.

    4.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y, a continuación,

    haga clic en Pegar.

    De forma predeterminada, el paquete copiado se denominará Lesson 2.dtsx.

    5.  En el Explorador de soluciones, haga doble clic en Lesson 2.dtsx para abrir el paquete.

    6.  Haga clic con el botón secundario en cualquier parte del fondo de la superficie de diseño Flujo de control 

    y haga clic en Propiedades.

    7.  En la ventana Propiedades, actualice la propiedad Name a Lección 2.

    8.  Haga clic en el cuadro de la propiedad Id. y, a continuación, en la lista, haga clic en .

    Para agregar el paquete de la lección 1 completada1.  Abra Business Intelligence Development Studio y abra el proyecto SSIS Tutorial.

    2.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y haga clic en Agregar

    paquete existente.

    3.  En el cuadro de diálogo Agregar copia de paquete existente, en Ubicación del paquete, seleccione

    Sistema de archivos.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    15/35

    4.  Haga clic en el botón para examinar (…), desplácese a C:\Archivos de programa\Microsoft SQL

    Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Completed Packages,

    seleccione Lesson 1.dtsx y haga clic en Abrir.

    5.  Copie y pegue el paquete de la lección 1 tal como se describe en los pasos 3 a 8 del procedimiento anterior.

    Tarea 2: Agregar y configurar el contenedor de bucles Foreach

    En esta tarea, agregará la capacidad de buscar en una carpeta de archivos planos y aplicará la misma transformaciónde flujo de datos utilizada en la lección 1 a cada uno de dichos archivos planos. Para ello, agregará y configurará uncontenedor de bucles Foreach para el flujo de control.

    El contenedor de bucles Foreach que agregue debe poder conectarse a cada uno de los archivos planos de la carpeta.Puesto que todos los archivos de la carpeta tienen el mismo formato, el contenedor de bucles Foreach puede utilizarel mismo administrador de conexión de archivos planos para conectarse a cada uno de estos archivos. Eladministrador de conexión de archivos planos que el contenedor utilizará es el mismo administrador de conexión dearchivos planos que creó en la lección 1.

    Actualmente, el administrador de conexión de archivos planos de la lección 1 se conecta a un único archivo plano

    específico. Para conectarse de forma iterativa a cada uno de los archivos planos de la carpeta, deberá configurar elcontenedor de bucles Foreach y el administrador de conexión de archivos planos de este modo:

      Contenedor de bucles Foreach  Asignará el valor enumerado del contenedor a una variable de paquete

    definida por el usuario. El contenedor utilizará esta variable definida por el usuario para modificar de forma

    dinámica la propiedad ConnectionString del administrador de conexión de archivos planos y conectar de

    forma iterativa cada uno de los archivos planos de la carpeta.

      Administrador de conexión de archivos planos  Modificará el administrador de conexión creado en la

    lección 1 utilizando una variable definida por el usuario para llenar la propiedad ConnectionString  del

    administrador de conexión.

    En los procedimientos de esta tarea se muestra cómo crear y modificar el contenedor de bucles Foreach para utilizaruna variable de paquete definida por el usuario y agregar la tarea de flujo de datos al bucle. Aprenderá a modificar

    el administrador de conexión de archivos planos para utilizar una variable definida por el usuario en la siguientetarea.

    Una vez realizadas estas modificaciones en el paquete, cuando éste se ejecute, el contenedor de bucles Foreach seiterará en la colección de archivos de la carpeta Datos de ejemplo. Cada vez que se encuentre un archivo que coincidacon los criterios, el contenedor de bucles Foreach llenará la variable definida por el usuario con el nombre de archivo,asignará la variable definida por el usuario a la propiedad ConnectionString del administrador de conexión dearchivos planos Sample Currency Data y, a continuación, ejecutará el flujo de datos en dicho archivo. Porconsiguiente, en cada iteración del bucle Foreach la tarea de flujo de datos utilizará un archivo plano distinto.

    Nota:

    Puesto que Microsoft Integration Services separa el flujo de control del flujo de datos, los bucles que agregueal flujo de control no precisarán ninguna modificación en el flujo de datos. Por consiguiente, no es necesario

    modificar el flujo de datos creado en la lección 1.

    Para agregar un contenedor de bucles Foreach1.  En Business Intelligence Development Studio, haga clic en la ficha Flujo de control.

    2.  En el cuadro de herramientas, expanda Elementos de flujo de control y arrastre un Contenedor de

    bucles Foreach a la superficie de diseño de la ficha Flujo de control.

    3.  Haga clic con el botón secundario en el Contenedor de bucles Foreach que acaba de agregar y seleccione

    Editar.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    16/35

    4.  En el cuadro de diálogo Editor de bucles Foreach, en la página General, en Nombre, escriba Foreach

    File in Folder. Haga clic en Aceptar.

    5.  Haga clic con el botón secundario en el contenedor de bucles Foreach, haga clic en Propiedades y, en la

    ventana Propiedades, compruebe que la propiedad LocaleID  esté establecida en Inglés (Estados

    Unidos).

    Para configurar el enumerador para el contenedor de bucles Foreach1.  Haga clic en Foreach File in Folder para volver a abrir el Editor de bucles Foreach.

    2.  Haga clic en Colección.

    3.  En la página Colección, seleccione Enumerador de archivos Foreach.

    4.  En el grupo Configuración de enumerador, haga clic en Examinar.

    5.  En el cuadro de diálogo Buscar carpeta, busque la carpeta de datos de ejemplo que contiene los datos de

    ejemplo del tutorial.

    De forma predeterminada, los datos de ejemplo del tutorial se instalan en la carpeta C:\ProgramFiles\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL

    Package\Sample Data.

    6.  En el cuadro Archivos, escriba Currency_*.txt.

    Para asignar el enumerador a una variable definida por el usuario1.  Haga clic en Asignaciones de variables.

    2.  En la página Asignaciones, en la columna Variable, haga clic en la celda vacía y seleccione .

    3.  En el cuadro de diálogo Agregar variable, en Nombre, escriba varFileName.

    Importante:

    Los nombres de variables distinguen entre mayúsculas y minúsculas.

    4.  Haga clic en Aceptar.

    5.  Haga clic de nuevo en Aceptar para salir del cuadro de diálogo Editor de bucles Foreach.

    Para agregar la tarea de flujo de datos al bucle  Arrastre la tarea de flujo de datos Extract Sample Currency Data al contenedor de bucles Foreach que

    ahora se denomina Foreach File in Folder.

    Tarea 3: Modificar el Administrador de conexiones de archivosplanos

    En esta tarea, modificará el administrador de conexiones de archivos planos que creó y configuró en la lección 1.Cuando se creó inicialmente, el administrador de conexiones de archivos planos se configuró para cargar de formaestática un único archivo. Para permitir que el Administrador de conexión de archivos planos cargue archivos deforma iterativa, debe modificar la propiedad ConnectionString del administrador de conexión de modo que acepte

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    17/35

    la variable User:varFileName definida por el usuario, que contiene la ruta de acceso del archivo que se cargaráen tiempo de ejecución.

    Al modificar el administrador de conexión para que utilice la variable definida por el usuario User::varFileName para rellenar la propiedad ConnectionString  del administrador de conexión, éste podrá conectarse a distintosarchivos planos. En tiempo de ejecución, cada iteración del contenedor de bucles Foreach actualizará dinámicamentela variable User::varFileName. A su vez, actualizar esta variable da lugar a que el administrador de conexión

    se conecte a un archivo plano distinto, y que la tarea de flujo de datos procese un conjunto de datos distinto.Para configurar el Administrador de conexión de archivos planos de modo que utilice una variable para la cadena de

    conexión1.  En el panel Administradores de conexión, haga clic con el botón secundario en Sample Flat File Source

    Data y, a continuación, seleccione Propiedades.

    2.  En la ventana Propiedades, para Expresiones, haga clic en la celda vacía y, a continuación, haga clic en el

    botón de puntos suspensivos (…).

    3.  En el cuadro de diálogo Editor de expresiones de propiedad, en la columna Propiedad, escriba o

    seleccione ConnectionString.

    4.  En la columna Expresión, haga clic en el botón de puntos suspensivos (…) para abrir el cuadro de diálogo

    Generador de expresiones.

    5.  En el cuadro de diálogo Generador de expresiones, expanda el nodo Variables.

    6.  Arrastre la variable User::varFileName hasta el cuadro Expresión.

    7.  Haga clic en Aceptar para cerrar el cuadro de diálogo Generador de expresiones.

    8.  Haga clic en Aceptar para cerrar el cuadro de diálogo Editor de expresiones de propiedad.

    Tarea 4: Probar el paquete del tutorial de la lección 2

    Con el contenedor de bucles Foreach y el administrador de conexiones de archivo plano que ha configurado, elpaquete de la lección 2 puede iterarse a través de la colección de 14 archivos planos de la carpeta Datos de ejemplo.Cada vez que se encuentra un archivo que coincide con los criterios de nombre de archivo especificados, el contenedorde bucles Foreach rellena la variable definida por el usuario con el nombre de archivo. Esta variable, a su vez,actualiza la propiedad ConnectionString del administrador de conexión de archivos planos, y se establece unaconexión con el archivo plano nuevo. A continuación, el contenedor de bucles Foreach ejecuta la tarea de flujo dedatos sin modificar en los datos del nuevo archivo plano antes de establecer conexión con el siguiente archivo de lacarpeta.

    Utilice el procedimiento siguiente para probar la nueva función del bucle que ha agregado al paquete.

    Comprobar el diseño del paqueteAntes de probar el paquete, debe comprobar que los flujos de datos y de control de la lección 2 contienen los objetosmostrados en los diagramas siguientes. El flujo de datos debe ser idéntico al flujo de datos de la lección 1.

    Flujo de control 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    18/35

     

    Flujo de datos 

    Para probar el paquete de tutorial de la lección 2

    1.  En el menú Depurar, haga clic en Iniciar depuración.

    El paquete se ejecutará. Puede comprobar el estado de cada bucle en la ventana Resultado o haciendo clic

    en la ficha Progreso. Por ejemplo, puede ver que se han agregado 1.097 líneas a la tabla de destino del

    archivo Currency_VEB.txt.

    2.  Una vez que se haya completado la ejecución del paquete, en el menú Depurar, haga clic en Detener

    depuración 

    Lección 3: Agregar configuraciones de paquetes

    Las configuraciones de paquetes permiten definir propiedades y variables de tiempo de ejecución desde el exteriordel entorno de desarrollo. Las configuraciones permiten desarrollar paquetes que son flexibles y fáciles deimplementar y distribuir. Microsoft Integration Services ofrece los siguientes tipos de configuración:

      Archivo de configuración XML

      Variable de entorno

      Entrada del Registro

      Variable de paquete primario

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    19/35

      Tabla de SQL Server

    En esta lección, modificará el paquete simple de Integration Services que ha creado en la Lección 2: Agregar bucles para aprovechar las configuraciones de paquetes. También puede copiar el paquete de la lección 2 completada quese incluye con el tutorial. Mediante el Asistente para la configuración de paquetes, creará un archivo de configuraciónXML que actualiza la propiedad Directory del contenedor de bucles Foreach utilizando una variable de nivel depaquete asignada a la propiedad Directory. Una vez que haya creado el archivo de configuración, modificará el valorde la variable desde el exterior del entorno de desarrollo y hará que la propiedad haga referencia a una nueva carpeta

    de datos de ejemplo. Cuando vuelva a ejecutar el paquete, el archivo de configuración rellenará el valor de la variabley ésta, a su vez, actualizará la propiedad Directory . Como consecuencia de ello, el paquete se iterará en los archivosde la nueva carpeta de datos, en lugar de iterarse en los archivos de la carpeta original del paquete codificada deforma rígida.

    Tarea 1: Copiar el paquete de la lección 2

    En esta tarea, creará una copia del paquete que ha creado en la lección 2, denominado Lesson 2.dtsx. Tambiénpuede agregar al proyecto el paquete completado de la lección 2 que se incluye con el tutorial y, a continuación,copiar dicho paquete. Utilizará esta nueva copia en toda la lección 3.

    Para crear el paquete de la lección 21.  Si Business Intelligence Development Studio no está aún abierto, haga clic en Inicio, seleccione Todos los

    programas seleccione, Microsoft SQL Server  y a continuación, haga clic en Business IntelligenceDevelopment Studio.

    2.  En el menú Archivo, haga clic en Abrir, haga clic en Proyecto o solución, seleccione SSIS Tutorial, haga

    clic en Abrir y, después, haga doble clic en SSIS Tutorial.sln.

    3.  En el Explorador de soluciones, haga clic con el botón secundario en Lesson 2.dtsx y, a continuación, haga

    clic en Copiar.

    4.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y, a continuación,

    haga clic en Pegar.

    De forma predeterminada, el paquete copiado se denomina Lesson 3.dtsx.

    5.  En el Explorador de soluciones, haga doble clic en Lesson 3.dtsx para abrir el paquete.

    6.  Haga clic con el botón secundario en cualquier parte del fondo de la ficha Flujo de control y luego haga

    clic en Propiedades.

    7.  En la ventana Propiedades, actualice la propiedad Name a Lección 3.

    8.  Haga clic en el cuadro de la propiedad Id. y, a continuación, en la lista, haga clic en .

    Para agregar el paquete de la lección 2 completada1.  Abra Business Intelligence Development Studio y abra el proyecto SSIS Tutorial.

    2.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y haga clic en Agregar

    paquete existente.

    3.  En el cuadro de diálogo Agregar copia de paquete existente, en Ubicación del paquete, seleccione

    Sistema de archivos.

    http://msdn.microsoft.com/es-es/library/ms166566.aspxhttp://msdn.microsoft.com/es-es/library/ms166566.aspxhttp://msdn.microsoft.com/es-es/library/ms166566.aspxhttp://msdn.microsoft.com/es-es/library/ms166566.aspx

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    20/35

    4.  Haga clic en el botón para examinar (…), desplácese a C:\Archivos de programa\Microsoft SQL

    Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Completed Packages,

    seleccione Lesson 2.dtsx y haga clic en Abrir.

    5.  Copie y pegue el paquete de la lección 2 tal como se describe en los pasos 3 a 8 del procedimiento anterior.

    Tarea 2: Habilitar y configurar las configuraciones de paquetes

    En esta tarea habilitará configuraciones de paquetes mediante el Asistente para la configuración de paquetes.Utilizará este asistente para generar un archivo de configuración XML que contiene parámetros de configuración parala propiedad Directory del contenedor de bucles Foreach. El valor de la propiedad Directory se proporciona a travésde una variable nueva de nivel de paquete que puede actualizarse durante la ejecución. Además, rellenará unacarpeta nueva de datos de ejemplo que utilizará durante las pruebas.

    Para crear una variable nueva de nivel de paquete asignada a la propiedad Directory1.  Haga clic en el fondo de la ficha Flujo de control del Diseñador SSIS. De este modo se establece en el

    paquete el ámbito de la variable que se va a crear.

    2.  En el menú SSIS, seleccione Variables.

    3.  En la ventana Variables, haga clic en el icono Agregar variable.

    4.  En el cuadro Nombre, escriba varFolderName.

    Importante:

    Los nombres de variables distinguen entre mayúsculas y minúsculas.

    5.  Compruebe que en el cuadro Ámbito se muestra el nombre del paquete (Lección 3).

    6.  Establezca el valor del cuadro Tipo de datos de la variable varFolderName en String.

    7.  Regrese a la ficha Flujo de control y haga doble clic en el contenedor Foreach File in Folder.

    8.  En la página Colección del Editor de bucles Foreach, haga clic en Expresiones y, a continuación, haga

    clic en el botón de puntos suspensivos (…).

    9.  En el Editor de expresiones de propiedad, haga clic en la lista Propiedad y seleccione Directorio.

    10.  En el cuadro Expresión, haga clic en el botón de puntos suspensivos (…).

    11.  En el Generador de expresiones, expanda la carpeta Variables y arrastre la variable

    User:varFolderName  al cuadro Expresión.

    12.  Haga clic en Aceptar para salir del Generador de expresiones.

    13.  Haga clic en Aceptar para salir del Editor de expresiones de propiedad.

    Para habilitar las configuraciones de paquetes1.  Haga clic en el fondo de la ficha Flujo de control del Diseñador SSIS.

    2.  En el menú SSIS, haga clic en Configuraciones de paquetes.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    21/35

    3.  En el cuadro de diálogo Organizador de configuraciones de paquetes, seleccione Habilitar

    configuraciones de paquetes y, a continuación, haga clic en Agregar.

    4.  En la página de bienvenida del Asistente para la configuración de paquetes, haga clic en Siguiente.

    5.  En la página Seleccionar tipo de configuración, compruebe que el Tipo de configuración  está

    establecido en Archivo de configuración XML.

    6.  En la página Seleccionar tipo de configuración, haga clic en Examinar.

    7.  De forma predeterminada, el cuadro de diálogo Seleccionar ubicación del archivo de configuración se

    abrirá en la carpeta del proyecto.

    8.  En el cuadro de diálogo Seleccionar ubicación del archivo de configuración, escriba SSISTutorial en

    Nombre de archivo y haga clic en Guardar.

    9.  En la página Seleccionar tipo de configuración, haga clic en Siguiente.

    10.  En la página Seleccionar propiedades para la exportación, en el panel Objetos, expanda Variables,

    luego varFolderName y Propiedades y, a continuación, seleccione Valor.

    11.  En la página Seleccionar propiedades para la exportación, haga clic en Siguiente.

    12.  En la página Finalizando el asistente, escriba un nombre para la configuración, como por ejemplo, SSIS

    Tutorial Directory configuration. Éste es el nombre de configuración que se muestra en el cuadro de

    diálogo Organizador de configuraciones de paquetes.

    13.  Haga clic en Finalizar.

    14.  Haga clic en Cerrar.

    15.  El asistente crea un archivo de configuración, denominado SSISTutorial.dtsConfig, que contiene parámetros

    de configuración para el valor (value) de la variable que, a su vez, establece la propiedad Directory delenumerador.

    Nota:

    Generalmente, un archivo de configuración contiene información compleja sobre las propiedades de unpaquete, pero, en este tutorial, la única información que debería de contener es[User::varFolderName].Properties[Value].

    Para crear y rellenar una carpeta nueva de datos de ejemplo1.  En el Explorador de Windows, en el nivel raíz de la unidad (por ejemplo, C:\), cree una carpeta nueva

    denominada New Sample Data.

    2.  Abra la carpeta C:\Archivos de programa\Microsoft SQL Server\100\Samples\Integration

    Services\Tutorial\Creating a Simple ETL Package\Sample Data y copie tres de los archivos de ejemplo de la

    carpeta.

    3.  En la carpeta New Sample Data, pegue los archivos copiados.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    22/35

    Tarea 3: Modificar el valor de configuración de la propiedadDirectory

    En esta tarea modificará el parámetro de configuración, almacenado en el archivo SSISTutorial.dtsConfig, para lapropiedad Value de la variable de nivel de paquete User::varFolderName. Esta variable actualiza la propiedadDirectory del contenedor de bucles Foreach. El valor modificado hará referencia a la carpeta New Sample Data 

    que ha creado en la tarea anterior. Una vez que haya modificado el parámetro de configuración y que haya ejecutadoel paquete, la variable actualizará la propiedad Directory, utilizando el valor llenado desde el archivo deconfiguración, en lugar del valor del directorio configurado originalmente en el paquete.

    Para modificar el parámetro de configuración de la propiedad Directory1.  En el Bloc de notas o en cualquier editor de texto, busque y abra el archivo de configuración

    SSISTutorial.dtsConfig que ha creado utilizando el Asistente para la configuración de paquetes en la tarea

    anterior.

    2.  Cambie el valor del elemento ConfiguredValue para que coincida con la ruta de acceso de la carpeta New

    Sample Data que ha creado en la tarea anterior. No especifique la ruta de acceso entre comillas. Si la

    carpeta New Sample Data está en el nivel de raíz de su unidad de disco (por ejemplo, C: \), el XML

    actualizado debería ser similar al siguiente ejemplo:

    </ppversion="1.0"?>C:\New Sample

    Data  

    Por supuesto, la información de encabezado, GeneratedBy, GeneratedFromPackageID   y

    GeneratedDate será diferente en su archivo. El elemento que debe observar es Configuration. La

    propiedad Value de la variable User::varFolderName ahora contiene C:\New Sample Data.

    3.  Guarde el cambio y cierre el editor de texto.

    Tarea 4: Probar el paquete del tutorial de la lección 3

    Durante la ejecución, el paquete obtendrá el valor de la propiedad Directory de una variable actualizada en tiempode ejecución, en lugar de utilizar el nombre de directorio original especificado al crear el paquete. El valor de lavariable lo rellena el archivo SSISTutorial.dtsConfig.

    Para comprobar que, durante la ejecución, el paquete actualiza la propiedad Directory con el nuevo valor,simplemente debe ejecutar el paquete. Puesto que en el directorio sólo se copiaron tres archivos de datos de ejemplo,el flujo de datos sólo se ejecutará tres veces, en lugar de repetirse a través de los 14 archivos de la carpeta original.

    Comprobar el diseño del paqueteAntes de probar el paquete, debe comprobar que los flujos de datos y de control de la lección 3 contienen los objetosmostrados en los diagramas siguientes. El flujo de control debe ser idéntico al flujo de datos de la lección 2. El flujode datos debe ser idéntico al flujo de datos de las lecciones 1 y 2.

    Flujo de control 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    23/35

     

    Flujo de datos 

    Para probar el paquete de tutorial de la lección 3

    1.  En el menú Depurar, haga clic en Iniciar depuración.

    2.  Una vez que haya finalizado la ejecución del paquete, en el menú Depurar, haga clic en Detener

    depuración.

    Lección 4: Agregar registro

    Microsoft Integration Services incluye características de registro que permiten supervisar y solucionar los problemasde ejecución de paquetes mediante el seguimiento de eventos de tarea y de contenedor. La características de registroson flexibles, pueden habilitarse en el nivel de paquete o en tareas y contendores individuales del paquete. Puedeseleccionar qué eventos deben registrarse y crear varios registros para un único paquete.

    El registro lo proporciona un proveedor de registro. Cada proveedor de registro puede escribir información de registroen distintos formatos y tipos de destino. Integration Services proporciona los siguientes proveedores de registro:

      Archivo de texto

      SQL Server Profiler

      Registro de sucesos de Windows

      SQL Server

      Archivo XML

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    24/35

    En esta lección, creará una copia del paquete que ha creado en la Lección 3: Agregar configuraciones de paquetes.Utilizando este nuevo paquete, luego agregará y configurará el registro para supervisar eventos específicos durantela ejecución del paquete. Si no ha finalizado cualquiera de las lecciones anteriores, también puede copiar el paquetede la lección 3 finalizada incluido en el tutorial.

    Tarea 1: Copiar el paquete de la lección 3

    En esta tarea, creará una copia del paquete que ha creado en la lección 3, denominado Lesson 3.dtsx. Tambiénpuede agregar al proyecto el paquete completado de la lección 3 que se incluye con el tutorial y, a continuación,copiar dicho paquete. Utilizará esta nueva copia en toda la lección 4.

    Puesto que, junto con el paquete propiamente dicho, se copia información de configuración del paquete, tambiéndebe modificar la configuración del paquete para invertir uno de los cambios realizados en la lección precedente yhacer que el bucle Foreach haga referencia de nuevo a la carpeta Sample Data original.

    Para crear el paquete de la lección 41.  Si Business Intelligence Development Studio no está aún abierto, haga clic en Inicio, seleccione Todos los

    programas, Microsoft SQL Server y a continuación, haga clic en Business Intelligence Development

    Studio.

    2.  En el menú Archivo, haga clic en Abrir, haga clic en Proyecto o solución, seleccione SSIS Tutorial, haga

    clic en Abrir y, después, haga doble clic en SSIS Tutorial.sln.

    3.  En el Explorador de soluciones, haga clic con el botón secundario en Lesson 3.dtsx y, a continuación, haga

    clic en Copiar.

    4.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y, a continuación,

    haga clic en Pegar.

    De forma predeterminada, el paquete copiado se denomina Lesson 4.dtsx.

    5.  En el Explorador de soluciones, haga doble clic en Lesson 4.dtsx para abrir el paquete.

    6.  Haga clic con el botón secundario en cualquier parte del fondo de la ficha Flujo de control y haga clic en

    Propiedades.

    7.  En la ventana Propiedades, actualice la propiedad Name a Lección 4.

    8.  Haga clic en el cuadro de la propiedad Id. y, a continuación, en la lista, haga clic en .

    Para agregar el paquete de la lección 3 completada1.  Abra Business Intelligence Development Studio y abra el proyecto SSIS Tutorial.

    2.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y haga clic en Agregar

    paquete existente.

    3.  En el cuadro de diálogo Agregar copia de paquete existente, en Ubicación del paquete, seleccione

    Sistema de archivos.

    4.  Haga clic en el botón para examinar (…), desplácese a C:\Archivos de programa\Microsoft SQL

    Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Completed Packages,

    seleccione Lesson 3.dtsx y haga clic en Abrir.

    5.  Copie y pegue el paquete de la lección 3 tal como se describe en los pasos 3 a 8 del procedimiento anterior.

    Para modificar la configuración del paquete

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    25/35

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    26/35

    7.  En el cuadro de diálogo Seleccionar archivo, en el cuadro Nombre de archivo, escriba TutorialLog.log  

    y haga clic en Abrir.

    8.  Haga clic en Aceptar  para cerrar el cuadro de diálogo Editor del administrador de conexión de

    archivos.

    9. 

    En el panel Contenedores, expanda todos los nodos de la jerarquía del contenedor de paquetes y, acontinuación, desactive todas las casillas de verificación, incluida Extract Sample Currency Data. Ahora,

    active la casilla de verificación Extract Sample Currency Data para obtener sólo los eventos de este nodo.

    Importante:

    Si la casilla de verificación Extract Sample Currency Data está atenuada en lugar de activada, la tareautiliza la configuración de registro del contenedor primario y no se pueden habilitar los eventos de registroespecíficos de la tarea.

    10.  En la columna Eventos  de la ficha Detalles, seleccione los eventos PipelineExecutionPlan  y

    PipelineExecutionTrees.

    11.  Haga clic en Avanzadas para revisar los detalles que el proveedor de registro escribirá en el registro para

    cada evento. De forma predeterminada, todas las categorías de información se seleccionan

    automáticamente para los eventos que se especifiquen.

    12.  Haga clic en Básicas para ocultar las categorías de información.

    13.  En la ficha Proveedores y registros, en la columna Nombre, seleccione Lesson 4 Log File. Una vez que

    haya creado un proveedor de registro para el paquete, si lo desea, puede anular su selección para desactivar

    temporalmente el registro, sin tener que eliminar el proveedor de registro y crearlo de nuevo.

    14.  Haga clic en Aceptar.

    Tarea 3: Probar el paquete del tutorial de la lección 4

    En esta tarea, ejecutará el paquete Lesson 4.dtsx. Al ejecutar el paquete, en la ventana Registrar eventos se mostraráuna lista de las entradas del registro que se escriben en el archivo de registro. Una vez que haya finalizado laejecución del paquete, comprobará el contenido del archivo de registro generado por el proveedor de registro.

    Comprobar el diseño del paqueteAntes de probar el paquete, debe comprobar que los flujos de datos y de control de la lección 4 contienen los objetosmostrados en los diagramas siguientes. El flujo de control debe ser idéntico al flujo de datos de las lecciones 2 y 3.El flujo de datos debe ser idéntico al flujo de datos de las lecciones 1, 2 y 3.

    Flujo de control 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    27/35

     

    Flujo de datos 

    Para ejecutar el paquete de tutorial de la lección 4

    1.  En el menú SSIS, haga clic en Registrar eventos.

    2.  En el menú Depurar, haga clic en Iniciar depuración.

    3.  Una vez que haya finalizado la ejecución del paquete, en el menú Depurar, haga clic en Detener

    depuración.

    Para examinar el archivo de registro generado  Mediante el Bloc de notas o cualquier otro editor de texto, abra el archivo TutorialLog.log.

    Aunque la semántica de la información generada para los eventos PipelineExecutionPlan  y

    PipelineExecutionTrees queda fuera del ámbito de este tutorial, puede ver que la primera línea enumera

    los campos de información especificados en la ficha Detalles del cuadro de diálogo Configurar registros

    de SSIS. Además, puede comprobar que los dos eventos que ha seleccionado, PipelineExecutionPlan yPipelineExecutionTrees, se han registrado para cada iteración del bucle Foreach.

    Lección 5: Agregar redirección de flujo de errores

    Para administrar los errores que puedan aparecer en el proceso de transformación, Microsoft Integration Servicesofrece la posibilidad de decidir para cada componente y cada columna cómo administrar los datos que no pueden

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    28/35

    transformarse. Puede optar por omitir un error en determinadas columnas, redireccionar toda la fila que ha generadoel error o simplemente rechazar el componente debido a un error. De forma predeterminada, todos los componentesde Integration Services están configurados para ser rechazados si se produce un error. Rechazar el componentedebido a un error, causa, a su vez, que el paquete también genere un error y que todos los procesos subsiguientesse detengan.

    En lugar de dejar que los errores detengan la ejecución de los paquetes, es recomendable configurar y administrarlos posibles errores de procesamiento como si se produjeran en la transformación. Si bien puede optar por omitir los

    errores a fin de garantizar que el paquete se ejecute correctamente, generalmente es mejor redireccionar la fila quegenera el error a otra ruta de proceso en la que los datos y el error puedan persistir, puedan examinarse y puedanprocesarse de nuevo más adelante.

    En esta lección, creará una copia del paquete que ha desarrollado en la Lección 4: Agregar registro. Trabajando coneste paquete nuevo, creará una versión dañada de los archivos de datos de ejemplo. El archivo dañado forzará laaparición de un error de proceso al ejecutar el paquete.

    Para administrar los datos del error, agregará y configurará un destino de archivo plano que escribirá en un archivolas filas que no puedan encontrar un valor de búsqueda en la transformación Lookup Currency Key.

    Antes de escribir los datos del error en el archivo, incluirá un componente de script que utiliza una script para obtenerdescripciones de error. A continuación, volverá a configurar la transformación Lookup Currency Key pararedireccionar los datos que no hayan podido procesarse en la transformación Script.

    Tarea 1: Copiar el paquete de la lección 4En esta tarea, creará una copia del paquete que ha creado en la lección 4, denominado Lesson 4.dtsx. Por otra parte,si no ha completado la lección 4, puede agregar al proyecto el paquete completado de la lección 4 que se incluye conel tutorial y, a continuación, copiar dicho paquete para trabajar. Utilizará esta nueva copia en toda la lección 5.

    Para crear el paquete de la lección 51.  Si Business Intelligence Development Studio no está aún abierto, haga clic en Inicio, seleccione Todos los

    programas, Microsoft SQL Server y, a continuación, haga clic en Business Intelligence Development

    Studio.

    2.  En el menú Archivo, haga clic en Abrir, haga clic en Proyecto o solución, seleccione SSIS Tutorial, haga

    clic en Abrir y, después, haga doble clic en SSIS Tutorial.sln.

    3.  En el Explorador de soluciones, haga clic con el botón secundario en Lesson 4.dtsx y, a continuación, hagaclic en Copiar.

    4.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y, a continuación,

    haga clic en Pegar.

    De forma predeterminada, el paquete copiado se denomina Lesson 5.dtsx.

    5.  En el Explorador de soluciones, haga doble clic en Lesson 5.dtsx para abrir el paquete.

    6.  Haga clic con el botón secundario en cualquier parte del fondo de la ficha Flujo de control y haga clic en

    Propiedades.

    7.  En la ventana Propiedades, actualice la propiedad Name a Lección 5.

    8.  Haga clic en el cuadro de la propiedad Id. y, a continuación, en la lista, haga clic en .

    Para agregar el paquete de la lección 4 completada1.  Abra Business Intelligence Development Studio y abra el proyecto SSIS Tutorial.

    2.  En el Explorador de soluciones, haga clic con el botón secundario en Paquetes SSIS y haga clic en Agregar

    paquete existente.

    http://msdn.microsoft.com/es-es/library/ms167061.aspxhttp://msdn.microsoft.com/es-es/library/ms167061.aspxhttp://msdn.microsoft.com/es-es/library/ms167061.aspxhttp://msdn.microsoft.com/es-es/library/ms167061.aspx

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    29/35

    3.  En el cuadro de diálogo Agregar copia de paquete existente, en Ubicación del paquete, seleccione

    Sistema de archivos.

    4.  Haga clic en el botón para examinar (…), desplácese a C:\Archivos de programa\Microsoft SQL

    Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Completed Packages,

    seleccione Lesson 4.dtsx y haga clic en Abrir.

    5.  Copie y pegue el paquete de la lección 4 tal como se describe en los pasos 3 a 8 del procedimiento anterior.

    Tarea 2: Crear un archivo dañado

    Para demostrar los errores de configuración y el control de los errores de transformación, debe crear un archivoplano de ejemplo que, cuando se procese, genere un error en un componente.

    En esta tarea, creará una copia de un archivo plano de ejemplo existente. Luego abrirá el archivo en el Bloc de notasy modificará la columna CurrencyID para garantizar que no pueda producir una coincidencia durante la búsquedade transformaciones. Cuando se procese el archivo nuevo, el error de búsqueda hará que se produzca un error en latransformación Lookup Currency Key y, por consiguiente, el resto del paquete generará un error. Una vez que hayacreado el archivo de ejemplo dañado, ejecutará el paquete para ver su error.

    Para crear un archivo plano de ejemplo dañado1.  En el Bloc de notas o en cualquier otro editor de texto, abra el archivo Currency_VEB.txt.

    De forma predeterminada, el archivo Currency_VEB.txt se instala en la carpeta c:\Program Files\Microsoft

    SQL Server\100\Samples\Integration Services\Tutorial\ Creating a Simple ETL Package\Sample Data.

    2.  Utilice la función de búsqueda y sustitución del editor de texto para buscar todas las instancias de VEB y

    sustituirlas por BAD.

    3.  Guarde el archivo en la misma carpeta que los otros archivos de datos de ejemplo con el nombre

    Currency_BAD.txt.

    Importante:

    Asegúrese de que Currency_BAD.txt  se guarda en la carpeta C:\Archivos de programa\Microsoft SQLServer\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data.

    4.  Cierre el editor de texto.

    Para comprobar que se producirá un error durante la ejecución1.  En el menú Depurar, haga clic en Iniciar depuración.

    En la tercera iteración del flujo de datos, la transformación Lookup Currency Key intenta procesar el archivo

    Currency_BAD.txt y la transformación generará un error. El error de la transformación hará que todo el

    paquete genere un error.

    2.  En el menú Depurar, haga clic en Detener depuración.

    3.  En la superficie de diseño, haga clic en la ficha Resultados de la ejecución.

    4.  Examine el registro y compruebe que se ha producido el siguiente error no controlado:

    [Lookup Currency Key[30]] Error: Row yielded no match during lookup. 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    30/35

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    31/35

    7.  En el cuadro de diálogo Editor de transformación Script, en la página Columnas de entrada, seleccione

    la columna ErrorCode.

    8.  En la página Entradas y salidas, expanda Salida 0, haga clic en Columnas de salida y, a continuación,

    en Agregar columna.

    9. 

    En la propiedad Name, escriba ErrorDescription   y establezca la propiedad DataType  en string[DT_WSTR].

    10.  En la página Script, compruebe que la propiedad LocaleID esté establecida en Inglés (Estados Unidos).

    11.  Haga clic en Editar script para abrir Herramientas Microsoft Visual Studio para Aplicaciones (VSTA). En el

    método Input0_ProcessInputRow, escriba o pegue el código siguiente.

    [Visual Basic]

    Copiar código

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    [Visual C#]

    Copiar código

    Row.ErrorDescription =

    this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

    La subrutina completada será como el código siguiente.

    [Visual Basic]

    Copiar código

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    End Sub

    [Visual C#]

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    32/35

    Copiar código

    public override void Input0_ProcessInputRow(Input0Buffer Row)

    {

    Row.ErrorDescription =this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

    }

    12.  Genere el script para guardar sus cambios y, a continuación, cierre VSTA.

    13.  Haga clic en Aceptar para cerrar el cuadro de diálogo Editor de transformación Script.

    Tarea 3: Agregar redirección de flujo de errores

    Como se ha mostrado en la tarea anterior, la transformación Lookup Currency Key no puede generar una coincidenciacuando la transformación intenta procesar el archivo plano de ejemplo dañado que ha generado un error. Puesto que

    la transformación utiliza la configuración de salida de error predeterminada, cualquier error da lugar a un error de latransformación. Cuando se produce un error en la transformación, también se produce un error en el resto delpaquete.

    En lugar de permitir que se produzca un error en la transformación, puede configurar el componente de modo quela fila que genera el error se redirija a otra ruta de procesamiento mediante la salida de error. El uso de una ruta deprocesamiento independiente permite hacer varias cosas. Por ejemplo, puede intentar eliminar los datos y luegovolver a procesar la fila con error. O bien, puede guardar la fila con error junto con otra información adicional sobreel error para comprobarla y procesarla de nuevo más adelante.

    En esta tarea configurará la transformación Lookup Currency Key para redirigir cualquier fila con errores a l a salidade errores. En la rama de errores del flujo de datos, estas filas se escribirán en un archivo.

    De forma predeterminada, las dos columnas adicionales en una salida de errores de Integration Services, ErrorCode y ErrorColumn, sólo contienen códigos numéricos que representan un número de error y el Id. de la columna en laque se produjo el error. Estos valores numéricos pueden tener un uso limitado sin la correspondiente descripción delerror.

    Para mejorar la utilidad de la salida de errores, antes de que el paquete escriba las filas con errores en el archivo, seutilizará un componente script para obtener acceso a la API de Integration Services y obtener una descripción delerror.

    Para configurar una salida de errores

    1.  En el Cuadro de herramientas, expanda Transformaciones de flujo de datos  y, a continuación,

    arrastre Componente de script a la superficiede diseño de la ficha Flujo de datos. Coloque Script a la

    derecha de la transformación Lookup Currency Key.

    2.  En el cuadro de diálogo Seleccionar el tipo de componente de script, haga clic en Transformación y

    luego en Aceptar.

    3.  Haga clic en la transformación Lookup Currency Key y, a continuación, arrastre la flecha roja hasta la

    transformación Script que acaba de agregar para conectar los dos componentes.

    La flecha roja representa la salida de errores de la transformación Lookup Currency Key. Utilizando la

    flecha roja para conectar la transformación con el componente de script, puede redirigir cualquier error de

    procesamiento a dicho componente, que, a continuación, lo procesará y enviará al destino.

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    33/35

    4.  En el cuadro de diálogo Configurar la salida de errores, en la columna Error, seleccione Redirigir fila 

    y, a continuación, haga clic en Aceptar.

    5.  En la superficie de diseño Flujo de datos, haga clic en Componente de script  en el Componente

    descript recién agregado y cambie el nombre por Get Error Description.

    6. 

    Haga doble clic en la transformación Get Error Description.

    7.  En el cuadro de diálogo Editor de transformación Script, en la página Columnas de entrada, seleccione

    la columna ErrorCode.

    8.  En la página Entradas y salidas, expanda Salida 0, haga clic en Columnas de salida y, a continuación,

    en Agregar columna.

    9.  En la propiedad Name, escriba ErrorDescription   y establezca la propiedad DataType  en string

    [DT_WSTR].

    10.  En la página Script, compruebe que la propiedad LocaleID esté establecida en Inglés (Estados Unidos).

    11.  Haga clic en Editar script para abrir Herramientas Microsoft Visual Studio para Aplicaciones (VSTA). En elmétodo Input0_ProcessInputRow, escriba o pegue el código siguiente.

    [Visual Basic]

    Copiar código

    Row.ErrorDescription =

    Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    [Visual C#]

    Copiar código

    Row.ErrorDescription =

    this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

    La subrutina completada será como el código siguiente.

    [Visual Basic]

    Copiar código

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

    Row.ErrorDescription =

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    34/35

      Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)

    End Sub

    [Visual C#]

    Copiar código

    public override void Input0_ProcessInputRow(Input0Buffer Row)

    {

    Row.ErrorDescription =

    this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);

    }12.  Genere el script para guardar sus cambios y, a continuación, cierre VSTA.

    13.  Haga clic en Aceptar para cerrar el cuadro de diálogo Editor de transformación Script.

    Tarea 5: Probar el paquete del tutorial de la lección 5

    En tiempo de ejecución, el archivo dañado, Currency_BAD.txt, no podrá generar una coincidencia en latransformación Lookup Currency Key. Puesto que la salida de errores de Lookup Currency Key se ha configuradopara redirigir las filas con errores al nuevo destino de filas con errores, el componente no genera ningún error y elpaquete se ejecuta correctamente. Todas las filas que generan un error se escriben en el archivo ErrorOutput.txt.

    En esta tarea, probará la configuración de la salida de error revisada ejecutando el paquete. Tras ejecutarcorrectamente el paquete, verá el contenido del archivo ErrorOutput.txt.

    Nota:

    Si no desea acumular filas con errores en el archivo ErrorOutput.txt, debe eliminar manualmente el contenidodel archivo entre ejecuciones de paquetes.

    Comprobar el diseño del paqueteAntes de probar el paquete, debe comprobar que los flujos de datos y de control del paquete de la lección 5 contienenlos objetos mostrados en los diagramas siguientes. El flujo de control debe ser idéntico al flujo de datos de laslecciones 2 a 4.

    Flujo de control 

  • 8/18/2019 LAB 01- Creando Un ETL Con SQL SERVER- Intregration Services (1)

    35/35

     

    Flujo de datos 

    Para ejecutar el paquete de tutorial de la lección 5

    1.  En el menú Depurar, haga clic en Iniciar depuración.

    2.  Una vez que haya finalizado la ejecución del paquete, en el menú Depurar, haga clic en Detener

    depuración.

    Para comprobar el contenido del archivo ErrorOutput.txt  En el Bloc de notas o en cualquier otro editor de texto, abra el archivo ErrorOutput.txt. El orden

    predeterminado de las columnas es: AverageRate, CurrencyID, CurrencyDate, EndOfDateRate, ErrorCode,

    ErrorColumn, ErrorDescription.

    Observe que todas las filas del archivo contienen el valor BAD de CurrencyID sin coincidencia, el valor -

    1071607778 de ErrorCode, el valor 0 de ErrorColumn y el valor "La fila no produjo ninguna coincidencia

    durante la búsqueda" de ErrorDescription. El valor de ErrorColumn se establece en 0 porque el error no es

    específico de columna. Es la operación de búsqueda la que ha generado el error. .