SlideShare una empresa de Scribd logo
1 de 134
Descargar para leer sin conexión
1 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
CAPITULO 1
Desarrollando Paquetes SSIS
Un paquete es el objeto central dentro de SQL Server Integration Services (SSIS) que
contiene la lógica de negocios para manejar el flujo de trabajo y el procesamiento de
datos. Se Utilizan paquetes SSIS para mover datos desde los orígenes a los destinos y
para manejar las precedencias cuando se procesan los datos. Puede crear paquetes
utilizando el asistente de Importación y Exportación de SQL Server en SQL Server
Management Studio (SSMS) o mediante el Diseñador SSIS en Business Intelligence
Development Studio (BIDS). En este capítulo se analiza la creación y la definición de los
paquetes en SSIS y el uso de los componentes principales de los objetos Control Flow y
Data Flow con orígenes y destinos.
SSIS está diseñado para muchas aplicaciones de integración y de procesamiento de
datos. Una de esas aplicaciones es el tratamiento de los datos en un data mart o un data
warehouse, donde los datos se utilizarán exclusivamente para el análisis y reportes en
business intelligence (BI). Aunque muchas empresas utilizan SSIS para BI, hay muchas
otras aplicaciones de SSIS. Por ejemplo, muchas organizaciones utilizan SSIS para
mover datos de sistemas antiguos hacia nuevos sistemas durante las migraciones de
aplicaciones, para integrar datos de múltiples sistemas, pasando los datos de ida y
vuelta, para extraer los datos para enviárselos a los proveedores o socios, para limpiar
los datos, para importar datos de proveedores o socios, y la lista sigue. Debido a que este
paquete de formación se centra en BI, parte del contenido de SSIS y las lecciones cubren
el uso de SSIS para la extracción, transformación y carga (ETL) del data warehouse, pero
en los capítulos de SSIS y en las lecciones también se explica sobre cómo tomar ventaja
de SSIS para otros fines.
En este capítulo inicial se explica cómo crear paquetes SSIS y define los objetos básicos
contenidos en el Flujo de Control y Flujo de Datos. En capítulos posteriores se describen
las características avanzadas, la implementación y los detalles de implementación de
SSIS.
Objetivos del Examen en este Capítulo:
 Implementar el Flujo de Control.
 Implementar el Flujo de Datos.
 Implementar la lógica de paquetes, usando variables.
 Ampliar paquetes SSIS usando código .NET.
 Identificar y resolver problemas en el despliegue de la solución SSIS.
 Instalar y mantener los componentes SSIS.
Antes de Empezar
Para completar este capítulo, debe tener:
 Conocimiento de Microsoft SQL Server 2008 R2, incluyendo las características y los
componentes SSIS.
 Experiencia de trabajo con proyectos y soluciones en Business Intelligence
Development Studio (BIDS).
 Experiencia de trabajo en SQL Server Management Studio (SSMS).
 Las bases de datos de ejemplo AdventureWorks y AdventureWorksDW2008
instaladas. Puede descargar las bases de datos del sitio web de CodePlex en
http://www.codeplex.com/MSFTDBProdSamples.
Lección 1: Creando Paquetes SSIS y Orígenes de Datos
2 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
El objeto central en SSIS es un paquete. Un paquete contiene la lógica de negocio para
manejar las tareas de extracción de datos, de manipulación, y de transformación
necesarias para mover los datos a los destinos. Los paquetes también contienen
elementos del flujo de trabajo para ayudar a procesar los datos. Estos elementos de flujo
de trabajo podrían implicar la ejecución de un procedimiento almacenado, mover un
archivo desde un servidor FTP a una carpeta de destino en el servidor, o enviar un
mensaje e-mail cuando un error ocurre. Cuando se ejecuta un paquete, la lógica interna
realiza los pasos diseñados.
Los paquetes también contienen conexiones a orígenes de datos y destinos de datos. Se
establecen estas conexiones para conectar a diferentes sistemas externos, como bases
de datos, archivos, servidores de transferencia de archivos (FTP), Servidores Simple Mail
Transfer Protocol (SMTP), y así sucesivamente. Las conexiones son usadas para el
motor de procesamiento de datos SSIS (llamado Flujo de Datos), así como para el motor
de flujo de trabajo (llamado Flujo de Control).
Creando Paquetes SSIS
El primer paso para empezar a utilizar SSIS es crear un paquete. Esto se puede hacer en
una de dos formas:
 Por utilizar el Asistente de Importación y Exportación integrado en SQL Server 2008
R2, que nos guía sobre cómo mover datos de un origen a un destino y genera
automáticamente un paquete SSIS. Después de crear un paquete en el asistente,
puede ejecutarlo inmediatamente, programarlo, o asociarlo con un proyecto SSIS.
 Por la creación explícita de un paquete dentro de un proyecto SSIS en BIDS. BIDS en
SQL Server 2008 R2 utiliza la interfaz Microsoft Visual Studio 2008 con plantillas
específicas instaladas para crear objetos BI tales como paquetes SSIS. En el entorno
de desarrollo BIDS, primero se crea un proyecto SSIS y luego se crean y desarrollan
nuevos paquetes.
El resto de esta lección explica el uso de ambos métodos para desarrollar paquetes
SSIS.
Utilizando el Asistente de Importación y Exportación
Con SQL Server 2008 R2, utilice el Asistente de Importación y Exportación para copiar
los datos sin pasar por el proceso de creación de un proyecto SSIS. Cuando utiliza el
asistente, se genera un paquete SSIS que se puede ejecutar inmediatamente o guardarlo
y luego modificarlo manualmente o programarlo.
Típicamente se inicia el Asistente de Importación y Exportación a través de SSMS
cuando se está conectado al motor relacional de SQL Server. SSMS es la herramienta de
gestión del SQL Server diseñada principalmente para la gestión de bases de datos, y
utilizaremos SSMS muchas veces en las lecciones, a través de este libro. Para iniciar
SSMS, desde el menú start, seleccionar Microsoft SQL Server 2008 R2 y luego SQL
Server Management Studio. La Figura 1-1 muestra el cuadro de dialogo Conectar con el
Servidor, donde se conecta por primera vez al Motor de Base de Datos.
3 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-1
Iniciando el Asistente de Importación y Exportación
Como su nombre lo indica, el Asistente de Importación y Exportación puede importar y
exportar datos. Utilice las siguientes consideraciones para determinar qué parte del
asistente usar:
 La importación de datos con el asistente le permite traer a una tabla SQL Server los
datos contenidos en orígenes accesibles. Los orígenes incluyen otras bases de datos
SQL Server, archivos planos, datos en hojas Microsoft Office Excel o bases de datos
Microsoft Office Access, y datos en bases de datos Oracle.
 La exportación de datos con el asistente le permite enviar datos de tablas SQL
Server, de vistas o de consultas personalizadas a conexiones de archivos planos o de
base de datos.
Para iniciar el Asistente de Importación y Exportación, siga estos pasos:
1. A través de SSMS, conéctese a la instancia del Motor de Base de Datos de SQL
Server 2008 R2 que contiene su origen o su destino.
2. Abra el Explorador de Objetos. Encontrará una lista de varios contenedores de
objetos bajo la conexión SQL Server. La carpeta Bases de Datos muestra todas las
bases de datos asociadas a la instancia SQL Server. La subcarpeta Bases de Datos
del Sistema contiene las bases de datos del sistema.
3. Para iniciar el Asistente de Importación y Exportación, de clic derecho en la base de
datos que desee utilizar como origen o destino.
4. Haga clic en Tareas. Si la base de datos es el origen de datos que desea enviar a un
sistema diferente, seleccione Exportar Datos. Si la base de datos es el destino para
archivos que actualmente existen fuera del sistema, seleccione Importar Datos, como
muestra la Figura 1-2.
4 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-2
El asistente le guiará a través de varias páginas de preguntas, cuyas respuestas son
utilizadas para construir el paquete resultante. Las páginas del asistente son las
siguientes:
1. La página Seleccionar un Origen de Datos le permite especificar la procedencia de
sus datos, tal como una base de datos SQL Server, un archivo de Excel, un archivo
plano, u otro origen. Si el origen es una base de datos relacional, también puede
configurar la seguridad de la conexión. La Figura 1-3 muestra la primera página del
Asistente de Importación y Exportación.
Figura 1-3
2. La página Seleccionar un Destino permite especificar donde serán enviados sus
datos. Se especifica el tipo de destino y, si es aplicable, el nombre del servidor y la
configuración de seguridad necesaria para acceder a los datos. Si elige Importar
Datos en SSMS para iniciar el asistente, la configuración de destino de datos se
enlazará a la base de datos que ha seleccionado antes de iniciar el asistente.
3. Si ha seleccionado un origen de base de datos relacional que permite consultas
personalizadas, en la página Especificar Copia de Tabla o Consulta, puede optar por
copiar los datos directamente desde el origen hasta el destino o especificar una
consulta. Si decide especificar una consulta, se abre una página adicional, llamada
Proporcionar una Consulta de Origen, que le permite introducir manualmente la
consulta.
4. Si el origen es una base de datos relacional y no se especifica una consulta, puede
elegir tablas y vistas de su origen en la página Seleccionar Tablas y Vistas de Origen.
5 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Si el origen es un archivo plano o ha especificado una consulta, sólo el archivo o la
consulta está disponible como una opción. También en esta página, puede renombrar
la tabla destino y editar las asignaciones de columna por hacer clic en el botón Editar
Asignaciones para definir configuraciones de columnas NULL, inserción de identidad,
y si la tabla debería ser eliminada y de nuevo ser creada.
5. Utilice la página Guardar y Ejecutar el Paquete para ejecutar el paquete de inmediato
o guardar el paquete para su posterior ejecución. Si se guarda el paquete, se puede
regresar y editar el paquete mediante el diseñador SSIS, lo que se muestra en el
resto de este capítulo.
Guardar y Editar Paquetes Creados en el Asistente
La última página del asistente le permite ejecutar el paquete inmediatamente o guardarlo.
Si decide guardar el paquete autogenerado dentro de un proyecto de Integration Services
en BIDS, como muestra la Figura 1-4, puede modificar su contenido después. A veces,
deseará utilizar el asistente para generar un paquete básico al cual añadirle lógica más
avanzada que el asistente no puede generar.
Figura 1-4
En general, el Asistente de Importación y Exportación proporciona una manera rápida de
mover datos de un origen a un destino, especialmente para usarlo una sola vez, pero hay
algunas limitaciones:
 Solo se puede especificar un origen y un destino en el asistente.
 Precedencias avanzadas de flujo de trabajo no están disponibles en el asistente.
 El asistente no comparte los origenes de datos con otros paquetes.
Es necesario evaluar si sus requerimientos de procesamiento de datos le permiten utilizar
el asistente o si es necesario desarrollar un nuevo paquete desde cero en BIDS.
Creando un Proyecto SSIS en BIDS
Aunque el Asistente de Importación y Exportación es útil para generar un paquete rápido
que mueve datos de un origen a un destino, estos paquetes son con frecuencia sólo un
punto de partida. Tarde o temprano, tendrá que desarrollar ya sea un paquete que tiene
requerimientos más complicados o crear un conjunto de paquetes coordinados. Para
estos casos, primero debe crear un nuevo proyecto SSIS en BIDS.
Nota: OBJETOS EN BIDS
Recuerde que cualquier proyecto en BIDS sólo puede contener objetos de un mismo tipo
de proyecto, tales como SSIS, SQL Server Analysis Services (SSAS), o SQL Server
Reporting Services (SSRS). Sin embargo, un proyecto puede estar asociado con
proyectos de diferentes tipos en la misma solución.
6 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Todos los componentes de SQL Server BI se generan de una manera similar a través de
la herramienta de desarrollo BIDS. Para iniciar el BIDS, desde el menú Start, seleccione
Microsoft SQL Server 2008 R2 y entonces Business Intelligence Development Studio.
Siga estos pasos para crear un nuevo proyecto SSIS:
1. En BIDS, elija Nuevo, Proyecto del menú Archivo. (Si tiene Visual Studio 2008
instalado por separado del BIDS, sólo tiene que seleccionar Nuevo Proyecto en el
menú Archivo). La Figura 1-5 muestra el cuadro de diálogo Nuevo Proyecto.
2. Rellene el cuadro de diálogo Nuevo Proyecto de la siguiente manera:
a. Bajo Tipos de Proyecto, seleccione Proyectos de Business Intelligence.
b. Bajo Plantillas, seleccione Proyecto de Integration Services.
c. Asignar un nombre a su proyecto en el cuadro Nombre.
d. En el cuadro Ubicación, vaya a la ubicación de la carpeta predeterminada para
almacenar los nuevos proyectos (en la carpeta …DocumentsVisual Studio
2008projects) o cambiar a una ubicación de su elección.
3 Cuando haya finalizado, haga clic en Aceptar para generar el proyecto. El proyecto
contiene varias carpetas de objetos de lógica SSIS, que muestra el Explorador de
Soluciones. Puede utilizar estos objetos en sus proyectos SSIS para apuntar a las
conexiones y los procesos de datos. La Figura 1-6 muestra un nuevo proyecto, con el
paquete por defecto Package.dtsx (creada con el proyecto) en el Diseñador SSIS y el
Explorador de Soluciones a la derecha.
Figura 1-5
Figura 1-6
Ahora está listo para configurar y desarrollar su paquete.
Para agregar un paquete existente, así como uno creado por el Asistente de Importación
y Exportación a su proyecto, haga clic derecho en la carpeta Paquetes SSIS en el
Explorador de Soluciones, luego, clic en Agregar Paquete Existente. Este cuadro de
diálogo le permite importar paquetes de otros proyectos o importar paquetes que ya han
sido desplegados.
7 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Tema Clave
Cuando crea paquetes en BIDS, el paquete es almacenado en el sistema de archivos con
la extensión de archivo .dtsx. Este archivo .dtsx es un archivo XML que contiene la lógica
y la disposición para el diseño que ha desarrollado en BIDS, y puede mover el archivo a
un proyecto diferente, manualmente desplegado en distintos servidores, o que sea parte
de un paquete de despliegue. En el Capítulo 3, "Desplegando y Configurando Paquetes
SSIS", y el Capítulo 4, "Administrando, Asegurando y Ejecutando Paquetes SSIS",
trabajará con archivos .dtsx durante el despliegue y la ejecución.
Desarrollando Orígenes de Datos de Proyecto y Conexiones de
Paquete
Debido a que el objetivo principal de SSIS es mover datos de origenes a destinos, lo
siguiente más importante es, agregar apuntadores a estos orígenes y destinos. Estos
apuntadores se llaman origenes de datos y conexiones. Los orígenes de datos se
almacenan a nivel de proyectos y se encuentran en el Explorador de Soluciones bajo la
carpeta lógica llamada Orígenes de Datos. Las conexiones, por otro lado, son definidas
en los paquetes y se encuentran en el panel Administradores de Conexión en la parte
inferior de la ficha Flujo de Control o Flujo de Datos. Las conexiones pueden ser basadas
en orígenes de datos o pueden ser independientes dentro de los paquetes. Las
siguientes secciones le guiaran a través del uso e implementación de orígenes de datos y
las conexiones de paquetes.
Creación de un Origen de Datos
Un origen de datos es un objeto del proyecto SSIS. Los orígenes de datos contienen
cadenas de conexión que apuntan a archivos o bases de datos, y se puede referenciar
dentro de uno o más paquetes. Los orígenes de datos son opcionales en SSIS, pero son
beneficiosos durante el desarrollo; si tiene, un gran número de paquetes que utilizan la
misma base de datos o conexión de archivos. Utilizar un origen de datos también ayuda
si es necesario cambiar una conexión que se utiliza en muchos paquetes. Basta con
cambiar el origen de datos una vez y luego al abrir cada paquete en su proyecto, se
sincronizará automáticamente la cadena de conexión almacenada en el paquete, con el
origen de datos.
Los Orígenes de Datos de Proyecto son para Fines de Desarrollo
Solamente
Note que después de que un paquete es desplegado a un nuevo entorno y ejecutado
fuera del proyecto, la cadena de conexión ya no es actualizada por el origen de datos, del
proyecto. En su lugar, debe utilizar las configuraciones de paquete para compartir las
cadenas de conexión.
Utilizar orígenes de datos en su proyecto y paquetes, es un proceso de dos pasos:
1. Creando el origen de datos. En el Explorador de Soluciones, haga clic derecho en la
carpeta Origenes de Datos, y haga clic en Nuevo Origen de Datos. En la página de
bienvenida del asistente, haga clic en Siguiente. La Figura 1-7 muestra el Asistente
para Orígenes de Datos.
8 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-7
Si ha realizado conexiones en el pasado, en su servidor, una lista en caché de esas
conexiones aparece en el área Conexiones de Datos, y puede elegir una conexión
existente o hacer clic en el botón New para crear una nueva conexión. La Figura
anterior muestra la página de conexión del asistente sin conexiones en caché.
2. Agregando el origen de datos a un paquete. Después de crear un origen de datos
en el proyecto, es necesario agregar el origen de datos a sus paquetes.
Creación de Administradores de Conexión de Paquetes
Un administrador de conexión de paquete, a veces llamado simplemente una conexión de
paquete, es independiente de los orígenes de datos. Sin embargo, las conexiones de
paquete pueden hacer referencia a un origen de datos del proyecto. Una conexión de
paquete permite a los diferentes componentes SSIS comunicarse con un objeto (como
una base de datos, archivo o servidor) fuera del paquete. Puede utilizar conexiones de
paquete como adaptadores de origen, FTP, servidores de e-mail, o archivos planos.
Si enlaza las conexiones de paquete al origen de datos de proyecto; cuando el origen de
datos es editado, la conexión de paquete también se actualizará, cuando el paquete está
siendo desarrollado. En el entorno de diseño BIDS en la Figura 1-8, el Explorador de
Soluciones muestra un origen de datos de proyecto, y dos conexiones de paquete
aparecen en el panel Administradores de Conexión en la parte inferior del Diseñador
SSIS.
Figura 1-8
Los paquetes pueden estar basados en origenes de datos definidos en el proyecto SSIS,
o pueden ser conexiones independients dentro de un proyecto. En la Figura anterior, el
proyecto tiene un origen de datos denominado AdventureWorks2008, del que también se
9 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
hace referencia en el panel Administradores de Conexion del paquete. En este ejemplo,
el paquete contiene otra conexión llamada AventureWorksDW2008, que no hace
referencia a un origen de datos del proyecto. El icono utilizado para identificar un origen
de datos coincide con el icono de la conexión de paquete, si la conexión de paquete hace
referencia a un origen de datos del proyecto.
Agregando Conexiones en el Panel Administradores de Conexión
Para crear una conexión nueva, haga clic derecho en el panel Administradores de
Conexión en la parte inferior de la ficha Flujo de Control, como muestra la Figura 1-9.
Puede crear una conexión de un origen de datos del proyecto seleccionando Nueva
Conexión desde Origen de Datos, como muestra la Figura 1-9, o puede crear una
conexión independiente dentro de un paquete por seleccionar Nueva Conexión y luego
elegir otro proveedor de conexión de la lista Tipo de Administrador de Conexion. Una
conexión independiente es una conexión que no es compartida durante el desarrollo con
otros paquetes, utilizando un origen de datos de proyecto. Conexiones independientes en
un paquete que tienen el mismo nombre que una conexión o conexiones de otro paquete
pueden, sin embargo, ser actualizadas juntas en tiempo de ejecución a través de la
configuración del paquete.
Figura 1-9
Modificando un Origen de Datos de Proyecto
Cuando se crea una conexión de paquete de un origen de datos, esa conexión es
actualizada sólo durante el desarrollo cuando se abre el paquete y el origen de datos ha
sido cambiado. Las conexiones de paquete no se actualizan cuando se ejecutan por
separado del proyecto SSIS asociado, por ejemplo, cuando se ejecutan desde la línea de
comandos.
El primer paso para crear una conexión de paquete es elegir el tipo de conexión, como
muestra la Figura 1-9. Si selecciona una conexión basada en un origen de datos, la
conexión ya ha sido creada. Sin embargo, si opta por otro tipo de conexión, debe realizar
al menos un paso más antes de que se complete la conexión. Por ejemplo, si se conecta
a una base de datos relacional, debe seleccionar Nueva Conexión OLE DB o Nueva
Conexión ADO.NET (dependiendo del proveedor de conexión que desea utilizar para
acceder a la base de datos). Después de seleccionar el tipo de conexión, es necesario
configurar esa conexión.
Cuando se selecciona el tipo de conexión, SSIS le pide que seleccione una cadena de
conexión que se ha almacenado en el caché en la máquina que está trabajando o crear
una nueva conexión en caché. Si la cadena de conexión está almacenada en caché en el
equipo, sólo tiene que seleccionar esa conexión de la lista para añadirlo a la lista de
conexiones en el panel Administradores de Conexión en el paquete.
Si una cadena de conexión no existe en el caché, lo que necesita es crear una nueva
cadena de conexión. Por ejemplo, para definir una nueva cadena de conexión, para una
10 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
conexión OLE DB, en el panel Administradores de Conexión, haga clic derecho y luego
haga clic en Nueva Conexión OLE DB. A continuación, en el cuadro de dialogo
Configurar el Administrador de Conexiones OLE DB, haga clic en Nueva. En la lista
Proveedor, escoja de la lista de proveedores OLE DB que están instaladas en su
máquina, y entonces, especifique el nombre de base de datos y las credenciales de
seguridad de conexión, como muestra la Figura 1-10, luego, haga clic en Aceptar.
Después de especificar las opciones de conexión, puede elegir la conexión recientemente
en caché de la lista, luego se añade la nueva conexión al panel Administradores de
Conexión en el paquete.
Figura 1-10
Ahora que ha terminado de crear el paquete y las conexiones de paquete, está listo para
comenzar a desarrollar los componentes del paquete. Las Conexiones son utilizadas en
varios componentes del paquete, incluidos las tareas de Flujo de Control Flow, los
adaptadores de Flujo de Datos y las transformaciones, controladores de eventos, registro
de paquetes, y configuraciones de paquetes.
PRACTICA: Creando Nuevos Paquetes, Data Sources y Conexiones
Los siguientes ejercicios lo familiarizarán con las tareas comunes de la creación de un
nuevo proyecto en BIDS y el trabajo con las data sources y conexiones.
EJERCICIO 1: Crear el Proyecto y los Paquetes
En este ejercicio, creará un nuevo proyecto SSIS y luego trabajará con un par de
paquetes SSIS mediante la adición de data sources y conexiones.
1. Iniciar SQL Server Business Intelligence Development Studio (BIDS), haciendo clic en
el botón Start y seleccione All Programs, Microsoft SQL Server 2008 R2, SQL Server
Business Intelligence Development Studio.
2. Elegir Nuevo, Proyecto del menú Archivo. (Si tiene Visual Studio 2008 instalado por
separado de BIDS, simplemente elija Nuevo Proyecto del menú Archivo). El cuadro
de diálogo Nuevo Proyecto muestra todas las plantillas instaladas para Microsoft
Visual Studio, incluyendo las plantillas Poryectos de Business Intelligence.
3. En el cuadro de diálogo Nuevo Proyecto, compruebe que Poryectos de Business
Intelligence se ha seleccionado en el área Tipos de Proyecto, y luego en el área
Plantillas, seleccione la plantilla Proyecto de Integration Services.
4. Cerca de la parte inferior del cuadro de diálogo Nuevo Proyecto, en el cuadro
Nombre, escriba Proyecto SSIS como el nombre de su proyecto SSIS.
5. En el cuadro Location, escriba la ruta, a partir de la carpeta de documentos en:
C:SSISCodigoCap1.
11 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
6. A continuación, desactive la casilla de verificación Crear Directorio para la solución,
que almacena el proyecto SSIS en la carpeta especificada en el paso 5.
7. Haga clic en Aceptar para que BIDS cree el nuevo proyecto SSIS.
8. Cuando se crea el proyecto, SSIS crea automáticamente un nuevo paquete SSIS
llamado Package.dtsx y lo abre en el Diseñador SSIS. En el Explorador de
Soluciones, de clic derecho en Package.dtsx, a continuación, de clic en Cambiar
Nombre.
9. Renombre el paquete escribiendo MiPaquete.dtsx. BIDS puede pedirle que
renombre el objeto de paquete. Si aparece un mensaje que le pide que cambie el
nombre del objeto de paquete, haga clic en Si. Siempre haga clic en Si cuando se le
pida cambiar el objeto del paquete cuando renombre un paquete, ya que actualiza el
nombre interno del paquete.
10. Haga clic en el botón Guardar en la barra de herramientas; luego, cierre el paquete
haciendo clic en el botón Cerrar en la esquina superior derecha del Diseñador SSIS.
11. Para crear un nuevo paquete, haga clic derecho en la carpeta Paquetes SSIS en el
Explorador de Soluciones y, luego, haga clic en Nuevo Paquete de SSIS. Esto crea
un nuevo objeto paquete llamado Package1.dtsx (el número depende de cuántos
paquetes se han creado) en la carpeta Paquetes SSIS en el Explorador de
Soluciones.
12. Para renombrar el nuevo paquete, haga clic derecho en el paquete, y luego haga clic
en Cambiar Nombre. Renombre el paquete a DimCustomer.dtsx porque este
paquete contiene la lógica para procesar la tabla de dimensiones de clientes. Cuando
se le pida, haga clic en Si para renombrar el objeto paquete.
13. Siguiendo los mismos pasos, cree un paquete más en su proyecto SSIS llamado
DimPromotion.dtsx.
EJERCICIO 2: Crear Origenes de Datos de Proyecto
En este ejercicio, creará dos data sources de proyecto, que serán utilizados en los
paquetes como el origen y el destino.
1. Si es necesario, inicie el SQL Server Business Intelligence Development Studio
(BIDS), abra el proyecto creado en el Ejercicio 1, Proyecto SSIS y, luego, abra el
Explorador de Soluciones (si no está ya en pantalla). Abrir el Explorador de
Soluciones, haciendo clic en el botón Explorador de Soluciones de la barra de
herramientas estándar.
2. En el Explorador de Soluciones, haga clic derecho en la carpeta Origenes de Datos, y
haga clic en Nuevo Origen de Datos. Cuando la página de Bienvenida al Asistente
para Origenes de Datos aparezca, haga clic en Siguiente.
3. En la página Seleccionar Como Definir la Conexion, seleccione Crear un Origen de
Datos basado en una Conexion Nueva o Existente.
4. Haga clic en Nueva para abrir el cuadro de dialogo Administradores de Conexión.
5. En la lista desplegable Proveedor, seleccione el proveedor OLE DB NativoSQL
Server Native Client 10.0 y haga clic en Aceptar. Tipee (local) en el campo Nombre
del Servidor.
6. En la lista desplegable Seleccione o Escriba el nombre de la Base de Datos,
seleccione AdventureWorks2008.
7. Haga clic en el botón Probar Conexión y, luego, haga clic en Aceptar. Haga clic en
Aceptar de nuevo para cerrar el cuadro de dialogo Administradores de Conexión.
8. Seleccione la conexión de datos (local).AdventureWorks2008 de la lista Conexiones
de Datos, luego, haga clic en Finalizar en el Asistente de Origenes de Datos.
9. La página Finalizacion del Asistente le pedirá que introduzca un nombre para el nuevo
proyecto de origen de datos. Tipee AdventureWorks2008 en el cuadro Nombre de
12 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Origen de Datos, luego, haga clic en Finalizar. Asegúrese de quitar el espacio entre
Adventure y Works2008.
10. Seguidamente, repita los pasos 2 al 9 para crear un nuevo origen de datos de
proyecto para la base de datos (local).AdventureWorksDW2008, y nombre este origen
de datos como AdventureWorksDW2008.
11. Cuando haya terminado de crear los orígenes de datos, haga clic en el botón Guardar
Todo en la barra de herramientas de BIDS.
EJERCICIO 3: Crear New Package Connection de Origenes de Datos de Proyecto
En este ejercicio, va a agregar las Origenes de Datos de proyecto que acaba de crear a
los dos paquetes que se han desarrollado.
1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto creado en el Ejercicio 1, Proyecto SSIS y, luego, abra el Explorador
de Soluciones. Editar el paquete MiPaquete.dtsx haciendo doble clic en el paquete en
el Explorador de Soluciones.
2. Localice el panel Administradores de Conexión (en la parte inferior de la ventana del
Diseñador SSIS), haga clic derecho en el panel y luego clic en Nueva Conexión desde
Origen de Datos.
3. En el cuadro de diálogo Seleccionar Origen de Datos, seleccione los orígenes de
datos AdventureWorks2008 y AdventureWorksDW2008 de la lista y haga clic en
Aceptar. Esto pone a los dos orígenes de datos de proyecto en el panel
Administradores de Conexión del paquete.
4. Realizar los mismos pasos en el paquete DimCustomer.dtsx para añadir los orígenes
de datos de proyecto AdventureWorks2008 y AdventureWorksDW2008 como
Administradores de conexión para el paquete.
5. Cuando haya terminado de crear los Administradores de conexión, haga clic en el
botón Guardar Todo en la barra de herramientas BIDS.
Comprobación Rápida
1. Se le pide combinar los datos de un libro de trabajo Excel y una tabla de base de
datos y luego colocar los resultados en un archivo plano de ancho fijo. ¿Se puede
realizar esta tarea mediante el Asistente de Importación y Exportación?
2. Es necesario crear paquetes SSIS para procesar sus datos y cubos SSAS para
realizar el análisis. ¿Se puede crear ambos objetos en un solo proyecto?
3. ¿Cuál es la diferencia entre un origen de datos de proyecto y una conexión de
paquete?
4. Si una conexión hace referencia a un origen de datos y el origen de datos se modifica,
¿Cuándo se actualizará la conexión?
Respuestas de Comprobación Rápida
1. No. El Asistente de Importación y Exportación le permite trabajar con un solo origen y
un solo destino. Para combinar tareas de fusión de datos o tareas de limpieza de
datos, es necesario crear ya sea un nuevo paquete específicamente para ese fin o
modificar un paquete previamente creado por el asistente.
2. No. No puede crear ambos objetos SSIS y SSAS en un mismo proyecto, porque BIDS
no le permite combinar objetos utilizados para diferentes plataformas. Se necesita
construir dos proyectos separados en BIDS: uno para los paquetes de SSIS y otro
para los cubos SSAS y las dimensiones.
3. Ambos, orígenes de datos de proyecto y conexiones de paquete son cadenas de
conexión. Sin embargo, un origen de datos reside fuera del paquete y puede ser
utilizado como una conexión de referencia para más de un paquete. Una conexión de
paquete no tiene que estar asociado a un origen de datos.
4. Las conexiones son actualizadas por sus orígenes de datos asociados, únicamente
cuando el paquete se abre para su edición en BIDS.
13 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Lección 2: Creando y Editando Objetos de Flujo de Control
Ahora que ha creado un proyecto SSIS, paquetes y conexiones de paquete, es hora de
empezar a utilizar las características de SSIS para la integración de datos y la lógica de
procesamiento. Esta lección y la Lección 3, "Usando adaptadores de Flujo de Datos y
transformaciones", se centran en los dos componentes principales dentro de SSIS: el
Flujo de Control y el Flujo de Datos. El Flujo de Control es el motor del flujo de trabajo y
contiene las tareas de flujo de control, los contenedores y las restricciones de
precedencias, que gestionan cuando las tareas y contenedores se ejecutan. El Flujo de
Datos, por el contrario, está directamente relacionado con el procesamiento y la
transformación de datos de los orígenes a los destinos.
En esta lección se analiza la definición de los objetos de flujo de control en la superficie
de diseño Flujo de Control. Cuando tiene un proyecto SSIS abierto en BIDS y está
diseñando un paquete, las pestañas en la parte superior del Diseñador SSIS le permiten
elegir un componente SSIS para trabajarlo. La superficie de diseño de Flujo de Control es
la primera pestaña y muestra un espacio de trabajo donde se configuran los objetos de
flujo de control. Hay tres tipos principales de objetos de flujo de control:
 Las tareas Flujo de Control. Son objetos de flujo de trabajo que realizan trabajos a
nivel operativo.
 Los contenedores Flujo de Control. Proporcionan un mecanismo de agrupación
para tareas y otros contenedores.
 Restricciones. Permite conectar tareas y contenedores y definir el orden de
ejecución y las precedencias.
Creando Tareas Flujo de Control
Una tarea flujo de control es un componente SSIS que realiza una operación tal como el
envío de un mensaje e-mail, la ejecución de una sentencia SQL, o copiar un archivo
desde un servidor FTP. Cuando una tarea Flujo de Control está completa, ya sea correcta
o incorrecta. Se utiliza el flujo de control para coordinar la ejecución de tareas en paralelo
o para establecer las restricciones de precedencia en base al estado de finalización de
tareas. Véase el Capítulo 2, "Depuración y Tratamiento de Error en SSIS", para aprender
más acerca de las restricciones de precedencia.
Para crear una nueva tarea Flujo de Control en su paquete, arrastre la tarea de la caja de
herramientas a la ficha Flujo de Control al Diseñador SSIS. La Figura 1-11, muestra la
ventana Cuadro de Herramientas cuando a la ficha Flujo de Control se le hace clic en el
Diseñador SSIS.
Figura 1-11
Después de agregar una tarea en el espacio de trabajo Flujo de Control, se necesita
configurar la tarea para realizar la operación específica que haya seleccionado. Para
habilitar la configuración, cada tarea tiene un editor que se puede abrir dándole doble clic
14 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
en la tarea o dándole clic derecho a la tarea y haciendo clic en Editar. La Tabla 1-1
enumera las tareas SSIS bajo la lista Elementos de Flujo de Control en la caja de
herramientas.
Debe haber notado que hay también una lista Tareas de Plan Mantenimiento para el Flujo
de Control. Estos son principalmente para administradores de bases de datos (DBAs),
que son los que manejan las bases de datos de SQL Server 2008R2 a través de la
interfaz del plan de mantenimiento en SSMS o DBAs que están creando paquetes en
BIDS para el mantenimiento de bases de datos.
Como puede ver, SSIS ofrece la posibilidad de realizar una serie de diferentes
procesamientos y operaciones de integración. Está más allá del alcance de este libro,
analizar los patrones de diseño de los componentes, pero se utilizará varias de estas
tareas, en algunos ejemplos de las lecciones y un par de tareas serán analizadas aquí.
Tabla 1-1. Tareas comunes en SSIS
TAREA DESCRIPCION
Tarea Script ActiveX
Ejecuta Microsoft Visual Basic Scripting Edition (VBScript) y código JScript,
que se incluye principalmente por compatibilidad con versiones anteriores,
cuando un paquete Servicio de Transformación de Datos (DTS) se migra a
SSIS.
Tarea Ejecutar DDL de Analysis
Services
Ejecuta código XML para Análisis (XMLA) a una base de datos SSAS. XMLA
es el lenguaje de definición de datos (DDL) para SSAS; por lo tanto, esta tarea
le permite realizar cambios de estructura común, tales como añadir particiones
a los cubos.
Tarea Procesamiento de Analysis
Services
Permite el procesamiento de objetos SSAS a través de un paquete SSIS.
Tarea Insercion Masiva
Permite la ejecución de las operaciones de copia masiva en SQL Server. Esta
tarea sólo funciona contra un Motor de base de datos SQL Server.
Tarea Flujo de Datos
Permite el procesamiento de datos de origenes a destinos. La Lección 3 en
este capítulo, cubre la tarea Flujo de Datos con más detalle.
Tarea Consulta de Mineria de
Datos
Realiza consultas de minería de datos y le permite capturar los resultados
para su análisis.
Tarea Generacion de Perfiles de
Datos
Permite el análisis de data source para patrones, los datos faltantes, llaves
candidatas, y estadísticas. Estos resultados suelen informar a los
desarrolladores, acerca de que lógica incluir en sus paquetes SSIS, basados
en las necesidades de los datos.
Tarea Ejecutar Paquete
Ejecuta otros paquetes SSIS desplegándolos a SQL Server o al sistema de
archivos.
Tarea Ejecutar Proceso
Ejecuta una operación en línea de comandos, tal como un programa o una
ejecución de un archivo de lotes.
Tarea Ejecutar SQL
Se ejecuta un código SQL en alguna conexión de base de datos, en el
lenguaje SQL del motor de base de datos conectada.
Tarea Sistema de Archivos
Permite copiar, mover y eliminar archivos, así como realizar operaciones de
archivo y de carpetas.
Tarea FTP
Envía y recibe archivos entre el sistema de archivos y un servidor FTP; y
realiza operaciones sencillas de archivo y de carpetas en el Servidor FTP.
Tarea Cola de Mensajes
Integrada con Message Queuing (MSMQ) en un servidor que ejecuta Windows
para leer y enviar mensajes.
Tarea Script
Ejecuta Microsoft Visual Basic 2008 o Microsoft Visual C# 2008 dentro de un
paquete SSIS.
Tarea Enviar Correo Envía un mensaje e-mail a través de un servidor SMTP.
Tareas Transferir Bases de
Datos, Inicios de Sesion,
Mensajes de Error, Objetos SQL
Server, Prodedimientos
Almacenados, Jobs.
Tareas que copian objetos SQL Server de un sistema a otro, incluyendo bases
de datos, Jobs de SQL Server Agent, mensajes de error, inicios de sesión,
maestro de procedimientos almacenados y objetos a nivel de base de datos.
Tarea Servicio Web Le permite conectarse a un Servicio Web para enviar o recibir información.
Tarea Lector de Datos WMI Le permite ejecutar un Windows Management Instrumentation (WMI) en el
15 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
sistema operativo para capturar información del servidor.
Tarea Monitor de Eventos WMI Espera por un evento en particular, antes de ejecutarlo.
Tarea XML Combinaciones, consultas, y diferentes archivos XML en el servidor.
Utilizando Contenedores de Flujo de Control
Su paquete debe contener al menos una tarea que lleva a cabo una operación específica;
sin embargo, la mayoría de las veces, los paquetes tienen varias tareas que se coordinan
entre sí, y se necesita una manera de organizarlas. Aquí es donde un contenedor Flujo
de Control puede ayudar. Un contenedor Flujo de Control permite agrupar tareas juntas,
para controlar cómo las tareas se ejecutan en paralelo, así como su ordenamiento,
registro y transacciones. Los contenedores también pueden ejecutar las tareas dentro de
ellas varias veces en base a requisitos iterativos.
Así como las tareas, se encuentran los contenedores en el Cuadro de Herramientas,
cuando se trabaja en el Flujo de Control. Para utilizar un contenedor, sólo tiene que
arrastrar el contenedor del Cuadro de Herramientas hasta el espacio de trabajo Flujo de
Control. La pantalla de la Figura 1-12 muestra un Flujo de Control de un paquete que
contiene un solo recipiente que contiene varias tareas.
Figura 1-12
Adicionalmente, puede arrastrar objetos de tareas y otros contenedores dentro del
contenedor.
Hay tres tipos de contenedores primarios en SSIS: un contenedor de Secuencias, un
contenedor de Bucles For, y un contenedor de Bucles Foreach.
 Contenedor de Secuencias. Le permite organizar las tareas subordinadas
agrupándolas, y permite aplicar las transacciones o asignar registros en el
contenedor.
 Contenedor de Bucles For. Proporciona la misma funcionalidad que el contenedor
de Secuencias, excepto que también le permite ejecutar las tareas varias veces sobre
la base de una condición de evaluación, por ejemplo como un bucle de 1 a 10.
 Contenedor de Bucles Foreach. También permite bucles, pero en lugar de
proporcionar una expresión de condición, se recorre un conjunto de objetos, tal como
archivos en una carpeta.
La Figura 1-13 muestra el Editor de Bucles Foreach, que se abre haciendo doble clic en
el contenedor o dándole clic derecho en el contenedor y luego clic en Editar.
Como se ha descrito, el contenedor de Bucles Foreach puede iterar diferentes tipos de
objetos, y las opciones de configuración permiten especificar los objetos sobre los que se
aplicará el lazo y la configuración detallada. Por otra parte, los valores de los objetos
enumerados se pueden poner en las variables de usuario. Por ejemplo, el contenedor de
16 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Bucles Foreach puede iterar a través de los archivos en una carpeta y retornar los
nombres de archivo en una variable.
Figura 1-13
Trabajando con Variables de Paquete
Las variables dentro de SSIS, son una manera de integrar los objetos por el envío de
valores entre las tareas y los contenedores, la aceptación de los valores de orígenes
externos, o la construcción de código de forma dinámica para que sea ejecutada.
También puede utilizar las variables para auditoría y registro.
Para trabajar con variables dentro de un paquete, elija Variables en el menú SSIS
(cuando diseñe un paquete). La Figura 1-14 muestra la ventana Variables en BIDS.
En la parte superior de la ventana Variables están los botones que le permiten crear y
borrar variables, así como ver otras variables dentro de un paquete. Como muestra la
Figura siguiente, a todas las variables SSIS se les da un nombre, un ambito, un tipo de
datos y un valor. El ámbito define a qué nivel dentro de un paquete, la variable es creada.
Por ejemplo, si selecciona un contenedor de Bucles Foreach y hace clic en el botón
Agregar Variable en la barra de herramientas de la ventana Variables, la variable está en
el ámbito de ese nivel. Cuando no hay tareas o contenedores seleccionados, la variable
está en el ámbito en el nivel de paquete completo.
Figura 1-14
TEMAS CLAVE
Las variables son visibles en una tarea o un contenedor sólo si el alcance de las variables
se encuentra en el ámbito de la tarea o contenedor en cuestión, en el ámbito de un nivel
de contenedor padre, o en el ámbito del mismo paquete. Por ejemplo, si una tarea
17 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Ejecutar SQL tiene una variable directamente asignada a través del ámbito de la variable,
sólo la tarea Ejecutar SQL puede ver y utilizar la variable. Otras tareas o contenedores no
podrán hacer referencia a la variable. Por otro lado, si un Contenedor de Bucles Foreach
tiene una variable con ámbito a ella, todas las tareas en el contenedor de Bucles Foreach
(incluido el contenedor mismo) puede hacer referencia y usar la variable. Las variables
son referenciadas como User::[NombreVariable] o System::[NombreVariable].
Dentro de SSIS, hay dos tipos de variables: las variables de sistema y las variables de
usuario.
 Variables de Sistema. Las variables de sistema no se pueden modificar, pero se
puede hacer referencia a ella dentro de las tareas y contenedores. Las variables de
sistema son establecidos por el paquete, para los metadatos de seguimiento; tales
como el nombre del paquete y el usuario que ejecuta el paquete. Para ver todas las
variables de sistema, haga clic en Mostrar Variables de Sistema (el botón con una X)
en la barra de herramientas de la ventana Variables.
 Variables de Usuario. Puede crear y definir las variables de usuario para cualquier
propósito en el paquete. Por ejemplo, el contenedor de Bucles Foreach actualiza
variables de usuario con los valores para cada bucle que recorre. En la Figura
mostrada anteriormente, los nombres de archivos de todos los ficheros en el disco
C:, que comiencen con la palabra Customer, serán asignadas a una variable llamada
NombreArchivo. La Figura 1-15 muestra la ficha Asignacion de Variables, en el Editor
de Bucles Foreach.
Figura 1-15
Usando la tarea Script y la tarea Generacion de Perfiles de Datos
Aunque este libro se centra en el desarrollo y el mantenimiento, en lugar del diseño, vale
la pena destacar algunas tareas clave de Flujo de control. El objetivo de este libro cubre
el uso de código dentro de un paquete, así como la realización de perfiles de datos, así
que vamos a mirar a la tarea Script y la tarea Generacion de Perfiles de Datos.
Tarea Script
Puede utilizar la tarea Script dentro de SSIS para ejecutar código VB.NET o C#.NET. La
tarea Script tiene las siguientes características:
 Usa las herramientas de la interfaz Visual Studio para aplicaciones 2.0 (VSTA), que
permite ejecutar código VB.NET y C#.NET con la completa variedad de funciones y
métodos.
 Las variables pueden ser referenciadas y actualizadas en un script.
 Las conexiones pueden ser referenciadas y actualizadas en un script.
 Los puntos de interrupción SSIS se pueden aplicar en el código del script (para la
tarea Script). En el Capítulo 2 se discute sobre puntos de ruptura.
 Se ejecuta tanto en un entorno de 32 bits (x86) como en un entorno de 64 bits (X64).
18 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
TEMA CLAVE
Si desea hacer referencia a variables SSIS en una tarea Script, es necesario incluir las
variables en la lista ReadOnlyVariables o ReadWriteVariables, en función de si se
accederá a la variable para los propósitos de lectura o actualización de la variable.
En el ejemplo de Control Flow mostrado anteriormente en las 3 anteriores Figuras, el
paquete está recorriendo a través de archivos Excel y almacenando la ruta del archivo
Excel en una variable de paquete. El paquete contiene una conexión a Excel que debe
ser actualizado con el valor de la variable, porque cada vez que recorre el paquete, la
variable debe ser actualizada.
Utilizando una tarea Script, puede actualizar la conexión de Excel con el valor de la
variable. El primer paso es arrastrar una tarea Script dentro del contenedor Foreach Loop
de la Toolbox. El script debe ser la primera tarea que se ejecuta en el contenedor
Foreach Loop, así que se coloca antes de la tarea Execute SQL y se le conecta con una
restricción de precedencia. (Las restricciones de precedencia se tratan en el Capítulo 2).
La Figura 1-16 muestra el Scrip Task Editor.
Figura 1-16
En este ejemplo se utiliza Microsoft Visual Basic 2008 como el ScriptLanguage y se
especifica la variable User::FileName en la propiedad ReadOnlyVariables. Para el diseño
del script, en el Script Tast Editor, haga clic en Edit Script.
Para este ejemplo, el script tiene que actualizar el administrador de conexión de Excel
(Ms Excel 97-2003), para apuntar al valor de la variable, como muestra el código
siguiente:
Dts.Connections("Excel Connection Manager").ConnectionString() = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _
Dts.Variables("FileName").Value.ToString() + _
";Extended Properties=""EXCEL 8.0;HDR=YES"";"
La referencia a la conexión comienza con Dts.Connections y la referencia a las variables
comienza con Dts.Variables.
Este código se ejecuta para cada bucle en el contenedor Foreach Loop y actualiza el
administrador de conexiones de Excel.
Tarea Data Profiling
Puede utilizar la tarea Data Profiling para revisar las entidades de fuente de datos, para
verificar la limpieza y la integridad de los datos, y para entender cómo los datos están
estructuralmente organizados, así como posibles columnas clave y relaciones entre
columnas.
19 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
La tarea Data Profiling tiene dos partes: la tarea Data Profiling en el Control Flow que
realiza el análisis y el visor Data Profile para revisar los resultados.
Para utilizar la tarea Data Profiling, primero debe crear una conexión ADO.NET, donde
residan las tablas de origen o vistas. La tarea Data Profiling requiere una conexión
ADO.NET para los origenes. A continuación, arrastre la tarea de la Toolbox hasta el
Control Flow, y luego, abra la tarea para editar sus propiedades. La forma más sencilla de
desarrollar un Data Profiling es hacer clic en el botón Quick Profile en el Editor de tareas
Data Profiling. La Figura 1-17 muestra el cuadro de dialogo Single Table Quick Profile
Form, configurado para ejecutarse en la vista [Sales].[vPersonDemographics].
Figura 1-17
Tabla 1-2. Características de Tareas Data Profiling
PERFIL DESCRIPCION
Perfil Column Null Ratio
Evalúa la columna y devuelve el porcentaje de valores NULL en la
columna con respecto al número total de filas de la tabla.
Perfil Column Statistics
Para las columnas numeric y datetime, devuelve la dispersión y el
promedio de los valores.
Perfil Column Value Distribution
Identifica la unicidad de los valores en una columna a través de todas
las filas de esa columna.
Perfil Column Length Distribution
Muestra las longitudes de valor distintas para una columna de texto y
el porcentaje de todas las filas que cada longitud toma.
Perfil Column Pattern
Muestran los patrones que se encuentran en la columna de datos y
devuelve el patrón de expresión regular que coincide con el patrón.
Perfil Candidate Key
Identifica una o más columnas que son únicas a través de todas las
filas, el porcentaje de la unicidad se muestra.
Perfil Functional Dependency
Lista de las columnas que tienen valor dependiente de otras columnas
en la tabla, donde el valor de una columna se encuentra sólo, cuando
el valor de otra columna es distinto.
Después de configurar la tarea Data Profiling a través de la caja de dialogo Single Table
Quick Profile Form, es necesario especificar el archivo de salida XML en la propiedad
Destination. Aquí es donde, la tarea almacena los resultados de los perfiles.
Para ver los resultados, abra el Visor Data Profile (Haga clic en Start, seleccione All
Programs, Microsoft SQL Server 2008 R2, Integration Services, Data Profile Viewer).
Haga clic en Open en la barra de herramientas, y busque el archivo de salida XML, donde
se almacenan los resultados. La Figura 1-18 muestra el Data Profile Viewer.
El Data Profile Viewer muestra cada tipo de perfil. El panel izquierdo le permite navegar
entre los tipos de perfiles y tablas de origen que se perfilan. El panel derecho muestra los
resultados.
20 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-18
Probando la ejecución del paquete en BIDS
Durante el desarrollo de un paquete, es necesario hacer una prueba de ejecución para
comprobar que su paquete y las tareas están configurados correctamente.
Puede ejecutar un paquete desde BIDS en tres formas:
 Elegir Start Debugging en el menú Debug en la barra de menú.
 Hacer clic en Start Debugging (el botón con una flecha que se asemeja al botón Play
en un reproductor) en la barra de herramientas.
 Presione la tecla F5 en su teclado.
Después de que un paquete se ejecuta en BIDS, una nueva pestaña llamada la ficha
Progress aparece en el Diseñador SSIS. Esta ficha muestra los resultados de la
ejecución y le permite solucionar los errores del paquete que pueda encontrar. La ficha
Progress se renombra como Execution Results cuando se retorna a la vista de Diseño.
PRACTICA: Creación y edición de una tarea de control de flujo
Los siguientes ejercicios le familiarizarán con la creación y edición de una tarea Control
Flow y la ejecución del paquete en el entorno de diseño.
EJERCICIO 1: Crear una tarea Control Flow y probar la ejecución del paquete.
En este ejercicio, trabajara con tareas Control Flow y ejecutará paquetes en el diseñador
SSIS.
1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto llamado PLibroSSIS que creó en la Lección 1, "Creación de paquetes
SSIS y Data Sources", y a continuación, edite el paquete llamado MyPackage.dtsx
(haga clic derecho en el paquete en Solution Explorer y, haga clic en Open).
2. Abra la ventana Toolbox, seleccione Toolbox del menú View, localice la tarea Execute
SQL, y arrastrelo al área de trabajo Control Flow de su paquete.
3. Edite el objeto de tarea Execute SQL, haga doble clic en el icono de la tarea o dele
clic derecho al icono de la tarea y luego clic en Edit.
4. Cambie la propiedad Connection para utilizar la conexión AdventureWorks2008R2.
5. En la propiedad SQLStatement del cuadro de diálogo Execute SQL Task Editor,
escriba el siguiente código:
UPDATE Production.Product
SET ProductLine = 's'
WHERE ProductLine IS NULL
21 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
6. Haga clic en OK en el cuadro de diálogo de la Tarea Execute SQL para volver al
Diseñador SSIS. Haga clic derecho en la tarea Execute SQL, haga clic en Rename, y
escriba Actualizar ProductLine.
7. A continuación, arrastre un objeto contenedor Sequence de la Toolbox al área de
trabajo del Control Flow.
8. Arrastre la tarea Execute SQL llamada Actualizar ProductLine, que acaba de crear
dentro del contenedor Sequence para que la tarea está contenida en la caja del
contenedor Sequence.
9. Para verificar la ejecución del paquete, haga clic en Start Debugging en la barra de
herramientas Estándar o seleccione Start Debugging en el menú Debug.
10. Cuando la ejecución del paquete este completa, su contenedor Sequence y la tarea
Execute SQL deben estar de color verde.
11. Haga clic en la ficha Execution Results (llamado Progress, mientras que el paquete se
está ejecutando) en el Diseñador SSIS para ver los detalles de la ejecución.
12. Seleccione el botón Stop Debugging de la barra de herramientas estándar, para
detener el depurador (o seleccione Debug, Stop Debugging en el menú Debug).
13. Haga clic en el botón Save All en la barra de herramientas BIDS.
EJERCICIO 2: Modificar el paquete ETL DimCustomer del Control Flow
En este ejercicio, se iniciará el proceso de construcción del paquete SSIS DimCustomer,
que manejará el proceso ETL de la base de datos AdventureWorks2008R2 a la base de
datos AdventureWorksDW2008R2.
1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto llamado PLibroSSIS que creó en la lección 1, "Creación de paquetes
SSIS y Data Sources", y a continuación, abra el paquete DimCustomer vacío.
2. Desde la Toolbox, arrastre dos tareas Execute SQL al área de trabajo Control Flow y
a continuación, arrastre una tarea Data Flow al área de trabajo.
3. A continuación, conecte la primera tarea Execute SQL a la tarea Data Flow
arrastrando la restricción de precedencia verde de la tarea Execute SQL hacia la
tarea Data Flow. A continuación, conecte la restricción de precedencia verde de la
tarea Data Flow a la segunda Tarea Execute SQL.
4. Renombre la primera tarea Execute SQL a Truncate Update Table, y renombre la
segunda Tarea Execute SQL a Batch Updates. La Figura 1-19 muestra como lucirá
el Control Flow.
Figura 1-19
5. Antes de editar las tareas en SSIS, abrir SSMS, conectese al Database Engine, y
cree una nueva consulta en la base de datos AdventureWorksDW2008R2. Ejecute el
siguiente código (archivo SQL: CrearTabla_stgDimCustomerUpdates):
USE AdventureWorksDW2008R2
GO
CREATE TABLE [dbo].[stgDimCustomerUpdates](
[CustomerAlternateKey] [nvarchar](15) NULL,
[AddressLine1] [nvarchar](60) NULL,
[AddressLine2] [nvarchar](60) NULL,
[BirthDate] [datetime] NULL,
[CommuteDistance] [nvarchar](15) NULL,
22 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
[DateFirstPurchase] [datetime] NULL,
[EmailAddress] [nvarchar](50) NULL,
[EnglishEducation] [nvarchar](40) NULL,
[EnglishOccupation] [nvarchar](100) NULL,
[FirstName] [nvarchar](50) NULL,
[Gender] [nvarchar](1) NULL,
[GeographyKey] [int] NULL,
[HouseOwnerFlag] [nvarchar](1) NULL,
[LastName] [nvarchar](50) NULL,
[MaritalStatus] [nvarchar](1) NULL,
[MiddleName] [nvarchar](50) NULL,
[NumberCarsOwned] [tinyint] NULL,
[NumberChildrenAtHome] [tinyint] NULL,
[Phone] [nvarchar](25) NULL,
[Suffix] [nvarchar](10) NULL,
[Title] [nvarchar](8) NULL,
[TotalChildren] [tinyint] NULL,
[YearlyIncome] [nvarchar](100) NULL) ON [PRIMARY]
6. Luego que se ha creado exitosamente la tabla, vuelva al paquete SSIS DimCustomer
y edite la tarea Execute SQL llamada Truncate Update Table.
7. En el cuadro de dialogo Execute SQL Task Editor, establezca la propiedad
Connection a AdventureWorksDW2008R2, a continuación, escriba el siguiente código
SQL en la propiedad SQLStatement antes de hacer clic en OK para guardarlo:
TRUNCATE TABLE dbo.stgDimCustomerUpdates
8. Editar la última tarea Execute SQL, llamada Batch Updates, y establecer la propiedad
Connection a AdventureWorksDW2008R2.
9. En la propiedad SQLStatement, introduzca la siguiente instrucción UPDATE (archivo
SQL: Actualizar_DimCustomer).
UPDATE dbo.DimCustomer
SET AddressLine1 = stgDimCustomerUpdates.AddressLine1
, AddressLine2 = stgDimCustomerUpdates.AddressLine2
, BirthDate = stgDimCustomerUpdates.BirthDate
, CommuteDistance = stgDimCustomerUpdates.CommuteDistance
, DateFirstPurchase = stgDimCustomerUpdates.DateFirstPurchase
, EmailAddress = stgDimCustomerUpdates.EmailAddress
, EnglishEducation = stgDimCustomerUpdates.EnglishEducation
, EnglishOccupation = stgDimCustomerUpdates.EnglishOccupation
, FirstName = stgDimCustomerUpdates.FirstName
, Gender = stgDimCustomerUpdates.Gender
, GeographyKey = stgDimCustomerUpdates.GeographyKey
, HouseOwnerFlag = stgDimCustomerUpdates.HouseOwnerFlag
, LastName = stgDimCustomerUpdates.LastName
, MaritalStatus = stgDimCustomerUpdates.MaritalStatus
, MiddleName = stgDimCustomerUpdates.MiddleName
, NumberCarsOwned = stgDimCustomerUpdates.NumberCarsOwned
, NumberChildrenAtHome =
stgDimCustomerUpdates.NumberChildrenAtHome
, Phone = stgDimCustomerUpdates.Phone
, Suffix = stgDimCustomerUpdates.Suffix
, Title = stgDimCustomerUpdates.Title
, TotalChildren = stgDimCustomerUpdates.TotalChildren
FROM dbo.DimCustomer DimCustomer
INNER JOIN dbo.stgDimCustomerUpdates
ON DimCustomer.CustomerAlternateKey
= stgDimCustomerUpdates.CustomerAlternateKey
10. Haga clic en OK en el cuadro de diálogo Execute SQL Task Editor, a continuación,
guarde el paquete. En la siguiente lección, se completara la parte del Data Flow de
este paquete y luego probaremos la ejecución.
23 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Comprobación rápida
1. ¿Cuál es la diferencia entre una tarea Control Flow y un contenedor Control Flow?
2. Para ejecutar un procedimiento almacenado en una base de datos SQL Server, ¿Qué
tarea debería elegir?
Respuestas de comprobación rápida
1. La tarea Control Flow realiza operaciones, mientras que los contenedores coordinan y
agrupan tareas. Por ejemplo, un contenedor Foreach Loop puede recorrer los
archivos en un sistema de carpetas, y una Tarea File System integrada dentro de un
contenedor puede mover los archivos a una nueva ubicación de carpeta.
2. La tarea Execute SQL puede ejecutar un procedimiento almacenado en SQL Server o
cualquier base de datos relacional, para cualquier proveedor de datos que se tenga
instalado. La sintaxis de las sentencias ingresadas en la tarea Execute SQL estarán
en lenguaje nativo de la base de datos utilizada.
Lección 3: Usando adaptadores Data Flow y transformaciones
La Lección 2, "Creación y edición de objetos Control Flow", mostró cómo usar las tareas
Control Flow y contenedores. Una de las tareas Control Flow más valioso es la tarea Data
Flow. Un paquete puede tener cero, uno o más Data Flow. Para trabajar con la tarea Data
Flow, puede arrastrar una tarea Data Flow de la Toolbox Control Flow hacia el espacio de
trabajo y hacer doble clic en él, o puede hacer clic en la ficha Data Flow en el Diseñador
SSIS. Después de hacer clic en la ficha Data Flow, aparece el diseñador Data Flow,
donde se puede utilizar el flujo de datos para manipular y transformar los datasets. La
tarea Data Flow tiene tres tipos de objetos en la Toolbox:
 Adaptadores de origenes Data Flow
 Adaptadores de transformaciones Data Flow
 Adaptadores de destinos Data Flow
La Figura 1-20 muestra la ficha Data Flow con la Toolbox abierta, destacando los
origenes Data Flow y algunas transformaciones Data Flow. Observe la diferencia entre
los elementos Toolbox Control Flow y los elementos Toolbox Data Flow.
Figura 1-20
En esta lección, se verán los detalles de los adaptadores de origen y destino, así como
de las transformaciones.
Definiendo adaptadores de origen Data Flow
Los adaptadores de origen Data Flow utilizan conexiones de paquete, que apuntan a la
instancia del servidor o ubicación del archivo de la data source. (La única excepción es el
adaptador Raw File, que no utiliza una conexión de paquetes). Un adaptador de origen
extrae datos de origen y los mueve dentro del data flow, donde será modificado y enviado
24 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
a un destino. Se crearan adaptadores de origen data flow arrastrando un adaptador de
origen de la Toolbox Data Flow hasta la ficha Data Flow en el Diseñador SSIS. La Tabla
describe las diferentes fuentes de flujos de datos y sus usos.
Tabla 1-3. Origenes Data Flow y sus Usos
FUENTE DATA FLOW PROPOSITO
Fuente ADO.NET
Proporciona conexiones a las tablas o consultas a través de un proveedor
ADO.NET.
Fuente Excel Permite extracciones de una hoja de trabajo Excel, definida en un archivo Excel.
Fuente Flat File
Se conecta a un archivo delimitado o de ancho fijo, creado con diferentes
páginas de código.
Fuente OLE DB
Se conecta a los proveedores OLE DB instalados, tales como SQL Server,
Access, SSAS y Oracle.
Fuente Raw File
Almacena datos nativos SSIS en tipo de archivo binario, usado para staging de
datos.
Fuente XML
Permiten que los datos en bruto se extraigan de un archivo XML, requieren de
un esquema XML para definir las asociaciones de datos.
A modo de ejemplo, la Figura 1-21 muestra la caja de dialogo OLE DB Source Editor
para un paquete que está extrayendo datos de la tabla [Sales].[SpecialOffer] de la base
de datos AdventureWorks2008R2, con la intención de cargarla en la tabla DimPromotion
en AdventureWorksDW2008R2.
Figura 1-21
El adaptador de origen OLE DB es similar al adaptador ADO.NET, en que requiere un
administrador de conexión y tambien una tabla debe ser seleccionada o una consulta
debe ser escrita. En este ejemplo, la lista desplegable Data access mode está
configurada a Table or view, y la tabla [Sales].[SpecialOffer] esta seleccionada. Si Data
access mode estuviera configurada a SQL Command, podría entrar una consulta para el
origen.
Creación de Destinos Data Flow
Los destinos data flow son similares a los origenes en que utilizan conexiones de
paquetes. Sin embargo, los destinos son los extremos finales en un paquete, definiendo
la ubicación en la que los datos deben ser colocados. Por ejemplo, si está enviando datos
a un archivo Excel desde una tabla de base de datos, su destino será un adaptador Excel
Destination.
TEMAS CLAVE
Muchos objetos SSIS tienen una propiedad ValidateExternalMetadata que puede
establecerse a False si el objeto referenciado (como una tabla) no existe cuando el
paquete está siendo diseñado. Esta propiedad es generalmente utilizada para los
25 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
adaptadores de origen o de destino, como cuando una tabla de destino es creada durante
la ejecución del paquete.
Todos los adaptadores de origen se enlazan a los adaptadores de destino en el flujo de
datos SSIS. Y hay otros adaptadores de destino que le permiten enviar datos a más
destinos inclusive. La Tabla enumera los adaptadores de destino data flow SSIS.
Tabla 1-4. Destino Data Flow y sus Usos
DESTINO DATA FLOW PROPOSITO
Destino ADO.NET
Permite la inserción de datos mediante un proveedor administrado
ADO.NET.
Data Mining Model Training
Permite pasar datos del data flow a un modelo de minería de datos en
SSAS.
Destino DataReader
Le permite poner los datos en un recordset ADO.NET que puede ser
referenciada, mediante programación.
Dimension Processing
Permite a las dimensiones SSAS, ser procesadasdirectamente, desde los
datos que fluyen a través del flujo de datos.
Destino Excel Se utiliza para insertar datos en Excel, incluyendo Excel 2010.
Destino Flat File
Permite la inserción de datos a un archivo plano, tal como un archivo
delimitado por comas o delimitado por tabulaciones.
Destino OLE DB
Utiliza el proveedor OLE DB para insertar filas a un sistema de destino,
que permite una conexión OLE DB.
Partition Processing
Permite que particiones SSAS sean procesadas directamente, desde los
datos que fluyen a través del flujo de datos.
Destino RawFile
Almacena datos nativos SSIS en un tipo de archivo binario, usado para
staging de datos.
Destino Recordset
Toma los datos del flujo de datos y crea un recordset en una variable de
paquete de tipo object.
Destino SQL Server Compact Le permite enviar datos a un dispositivo móvil, que ejecute SQL Mobile.
Destino SQL Server
Proporciona un destino específico de alta velocidad a SQL Server 2008, si
el paquete se está ejecutando en SQL Server.
TEMAS CLAVE
Se puede configurar el adaptador de destino OLE DB para insertar datos de los data flow
a través de lotes masivos de datos, en lugar de una fila a la vez. Para utilizar esta técnica
de optimización de destino, modifique el destino OLE DB y establezca el Data access
mode a Table or view – fast load. Cuando el destino OLE DB no está configurado con
carga rápida, sólo una fila a la vez se inserta en la tabla de destino.
La Figura 1-22 muestra un data flow simple con una fuente y un destino. El flujo de datos
extrae registros de la tabla Sales.SpecialOffer de AdventureWorks2008R2 y los inserta en
la tabla DimPromotion de AdventureWorksDW2008R2.
Figura 1-22
Al igual que en el origen, el adaptador de destino requiere configuración, tanto en la
conexión como en la tabla, en la que las filas se insertan; así como en la asignación de
las columnas de flujo de datos, a las columnas de la tabla de destino. La Figura 1-23
muestra el OLE DB Destination Editor, para el ejemplo anterior.
26 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-23
Note que el destino OLE DB utiliza la conexión AdventureWorksDW2008R2 y está
configurado por defecto para utilizar la opción Table or view – fast load de la lista
desplegable Data access mode. Esto significa que los registros serán procesados con las
sentencias de inserción masiva en lugar de una fila a la vez.
La Figura 1-24 muestra la ficha Mappings del mismo OLE DB Destination Editor. Aquí es
donde se puede asignar columnas disponibles del flujo de datos a las columnas de
destino en el adaptador de destino. Todos los adaptadores de destino tienen una ficha
Mappings.
Figura 1-24
Tenga en cuenta que no todas las columnas se asignan. Sin embargo, si una de las
columnas de destino sin asignar, se marca como NOT NULL, el destino del paquete falla
cuando se ejecuta. En la sección titulada "Usando Transformaciones" más adelante en
esta lección, verá cómo utilizar la transformación Slowly Changing Dimension para
manejar los nuevos registros y actualizaciones.
Trabajando con Transformaciones Data Flow
Las transformaciones le dan la capacidad de modificar y manipular los datos en el flujo de
datos. Una transformación realiza una operación, ya sea en una fila de datos a la vez o
en varias filas de datos a la vez.
27 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Al igual que con los adaptadores de origen y destino, arrastre las transformaciones de la
caja de la Toolbox data flow a la ficha Data Flow del Diseñador SSIS, y edítelos haciendo
clic derecho en la transformación que desea cambiar y dándole clic en Edit. Se conectan
orígenes, transformaciones y destinos a través de las rutas de datos, que se crean
arrastrando la flecha de salida a otro componente en el Data Flow. Las flechas verdes de
ruta de datos, son para las filas que se transformaron con éxito; y las flechas rojas de ruta
de salida son, para las filas en que falló la transformación, debido a un error, debido a un
truncamiento o a un error de conversión. La Figura 1-25 muestra un flujo de datos que
conecta un origen a varias transformaciones a través de rutas de datos y finalmente a un
destino.
Figura 1-25
Seleccionando transformaciones
Las Transformaciones realizan una amplia variedad de operaciones en los datos
referenciados, y la transformación que elija depende de sus necesidades de
procesamiento de datos. Algunas transformaciones operan de manera similar a otras
transformaciones, por lo tanto, podemos clasificarlos en grupos naturales de
componentes parecidos.
TRANSFORMACIONES DE LOGICA A NIVEL DE FILA
Las transformaciones más comunes y de fácil configuración realizan operaciones en las
filas sin necesidad de otras filas del origen. Estas transformaciones, que, lógicamente,
trabajan a nivel de fila, a menudo se desempeñan muy bien. La Tabla enumera las
transformaciones de lógica a nivel de fila.
Algunos de los usos comunes de estas transformaciones incluyen la realización de
cálculos matemáticos, la conversión de un valor de texto a un tipo de datos numérico o
decimal, el reemplazo de valores NULL con otros valores. Debido a que la transformación
Import Column y Export Column trabajan con tipos de datos binarios grandes, estas dos
transformaciones llevan una mayor carga de trabajo.
Tabla 1-5. Transformaciones de Lógica a Nivel de Fila
TRANSFORMACION DATA
FLOW
PROPOSITO
Audit
Agrega columnas adicionales a cada fila, en función de variables de sistema a
nivel de paquete, como ExecutionStartTime y PackageName.
Transformación Cache
Permite que datos que se usarán en una transformación Lookup estén en caché
y disponibles para múltiples componentes Lookup.
Character Map
Realiza operaciones comunes de texto, tal como Uppercase, y permite
operaciones de conversión bit, de lingüística avanzada.
28 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Copy Column Duplica valores de columna en cada fila a nuevos nombres de columna.
Data Conversion
Crea nuevas columnas en cada fila, en función de nuevos tipos de datos
convertidos, de otras columnas; por ejemplo, la conversión de texto a numérico.
Derived Column
Utiliza el lenguaje SSIS Expression para realizar cálculos en el sitio, sobre los
valores existentes; alternativamente, permite la adición de nuevas columnas
basadas en expresiones y cálculos de otras columnas y variables.
Export Column
Exporta columnas de objetos binarios grandes (BLOB), una fila a la vez, a un
archivo.
Import Column
Carga archivos binarios como imágenes en la pipeline, hacia un destino de tipo
de datos BLOB.
Row Count
Rastrea el número de filas que fluyen a través de la transformación y almacena
el número en una variable de paquete, después de la última fila.
TRANSFORMACIONES DE ENTRADAS O DE SALIDAS MULTIPLES
Las transformaciones de múltiples entradas y múltiples salidas pueden trabajar con más
de una entrada de datos o pueden generar más de una salida, respectivamente. Estas
transformaciones proporcionan la capacidad para combinar o ramificar datos y darle al
flujo de datos la capacidad total de procesar datos de una o más fuentes a uno o más
destinos. En la Tabla se enumeran las transformaciones de entrada múltiple y salida
múltiple.
Tabla 1-6. Transformaciones de Entrada Multiple y Salida Multiple
TRANSFORMACION DATA
FLOW
PROPOSITO
Conditional Split
Enruta o filtra los datos basados en expresiones booleanas a una o más salidas,
de tal modo que cada fila es enviada, a sólo una ruta de salida.
Lookup
Permite enlazar los valores de columnas pipeline a las tablas de base de datos
externas; columnas adicionales se pueden agregar a los data flow de la tabla
externa.
Merge
Combina las filas de dos entradas similares ordenadas, uno sobre la otra, sobre
la base de una llave de ordenación definida.
Merge Join
Une las filas de dos entradas ordenadas sobre la base de columna(s) de unión
definidas, agregando columnas de cada fuente.
Multicast
Genera una o más salidas idénticas, de la que cada fila es enviada a cada
salida.
Union All
Combina una o más entradas similares, apilando una fila encima de otra,
basada en columnas enlazadas.
Así como la Tabla describe, que las transformaciones Merge y Merge Join requieren
entradas ordenadas. Cuando estos componentes se utilizan en un data flow, la
transformación espera por filas de cualquier entrada, en base en el orden definido, para
preservar la salida ordenada o enlazar a través de las filas ordenadas, lo que significa
que las filas no pueden ser enviadas inmediatamente a la ruta de salida.
TEMAS CLAVE
Cuando tratamos de determinar que transformación usar que traiga más de un origen de
datos, recuerde que la transformación Merge Join trae dos origenes ordenadas juntas y
enlaza filas juntas; con un Inner Join, un Full Outer Join, o un Left Outer Join. Merge Join
puede enlazar más de una fila a través de las columnas de unión. Este comportamiento
es diferente al de la transformación Lookup, que retorna sólo un único enlace a través de
las columnas de unión de la tabla Lookup. La transformación Unión All no junta las filas a
la vez, sino que trae cada fila por separado de los origenes, apilando las filas juntas. El
número de filas en la salida Unión All es el número de filas combinadas de todas las
entradas. La transformación Merge es similar a Unión All, excepto que las fuentes tienen
que ser ordenados y la posición de orden se mantiene.
TRANSFORMACIONES DE MULTIPLES FILAS
29 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Algunas transformaciones realizan un trabajo basado en criterios de filas de entrada
multiples o generan múltiples filas de salida, de una fila de entrada única. Estas
transformaciones pueden ser más exigentes en la sobrecarga de la operación y la
memoria, pero proporcionan valiosas funciones para satisfacer las necesidades del
negocio. La Tabla enumera las transformaciones de múltiples filas.
Tabla 1-7. Transformaciones de Multiples Filas
TRANSFORMACION DATA
FLOW
PROPOSITO
Aggregate
Asocia registros basados en agrupaciones definidas, y genera agregaciones,
tales como SUM, MAX, MIN y COUNT.
Percent Sampling
Filtra las filas de entrada al permitir que sólo un porcentaje definido, pase a la
ruta de salida.
Pivot
Toma varias filas de entrada y pivotean las filas para generar una salida con
más columnas, basadas en los valores de fila original.
Row Sampling
Salida de un número de filas fijo, muestrea los datos de toda la entrada, no
importa que tan grande sea la salida definida, respecto a la entrada.
Sort
Ordenar la entrada basada en columnas de orden definido y dirección de
ordenamiento y permite la eliminación de duplicados, en las columnas
ordenadas.
Unpivot
Toma una sola fila y varias salidas de filas, pasando los valores de columna a la
fila nueva basada en las columnas definidas.
En los casos de transformaciones Sort, Aggregate, y Row Sampling, todas las filas de
entrada se bloquean, lo que les permite realizar el trabajo antes de enviar las filas a la
ruta de salida. Estas transformaciones a menudo requieren más recursos del servidor,
memoria y capacidad de procesamiento que otras transformaciones.
Transformaciones de preparación de datos Avanzadas
El último grupo de transformaciones le permite realizar operaciones avanzadas en las
filas de la pipeline de flujo de datos. La Tabla lista estas transformaciones avanzadas de
preparación de datos.
Tabla 1-8. Transformaciones de Preparacion de Datos Avanzadas
TRANSFORMACION DATA
FLOW
PROPOSITO
OLE DB Command
Realiza operaciones de base de datos, tales como actualizaciones y
eliminaciones, una fila a la vez, sobre la base de parámetros asignados a las
filas de entrada.
Slowly Changing
Dimension
Procesa los cambios de dimensión, incluyendo el rastreo de la historia de la
dimensión y la actualización de los valores de dimensión. La transformación
Slowly Changing Dimensión maneja estos tipos comunes de dimensiones de
cambio: Historical Attributes, Fixed Attributes y Changing Attributes.
Data Mining Query Aplica las filas de entrada con un modelo de minería de datos para predicción.
Fuzzy Grouping
Asocia valores de columna con un conjunto de filas basado en la semejanza,
para limpieza de datos.
Fuzzy Lookup
Junta una entrada de flujo de datos a una tabla de referencia basada en la
similitud de la columna. La configuración de umbral de similitud indica la
cercanía de los enlaces permitidos, un alto valor significa que los valores
enlazados están más cerca de la similitud.
Script Component
Proporciona capacidades de scripting VB.NET en las filas, columnas, entradas y
salidas de la pipeline de flujo de datos.
Term Extraction
Análiza las columnas de entrada de texto para sustantivos de ingles y
sustantivos de frases.
Term Lookup
Análiza las columnas de entrada de texto, frente a un conjunto definido por el
usuario, de palabras para asociación.
30 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
CASOS REALES
La mayoría de las empresas tienen numerosos sistemas que albergan, todo tipo de datos
de sistemas transaccionales, de ventas, recursos humanos, aplicaciones de negocios
personalizados. Muchos de estos sistemas aún se ejecutan en plataformas de bases de
datos diferentes, tales como SQL Server, Oracle, DB2, o sistemas pasados que no se
venden más. La complejidad de los datos dentro de las organizaciones va más allá de la
base de datos relacional de la empresa, a menudo incluyen archivos de Excel y
aplicaciones departamentales de Access. Navegar a través de estos sistemas puede ser
muy difícil, por no decir imposible.
SSIS ofrece beneficios reales en estas situaciones, ya que le ayuda a consolidar los
datos eficientemente.
La tarea consistiría por ejemplo, en simplificar un proceso complicado que involucre a
cinco diferentes fuentes de datos. Dos en SQL Server, una en Oracle, otra en Excel, y la
última en un archivo plano binario grande creado a partir de un sistema IBM AS/400.
Antes de rediseñar el procesamiento de estos datos, la operación requeriría un trabajo
nocturno de unas 7,5 horas. El trabajo incluiría un proceso por lotes para convertir el
archivo binario AS/400 a ASCII, y el trabajo de extraer datos de Oracle y de Excel a un
entorno staging en SQL Server y a través de un procedimiento almacenado bastante
grande. Lógica personalizada de unión de datos (numeración de millones de filas) a
través de servidores, mediante servidores enlazados y almacenando los datos en cerca
de 15 tablas staging antes de que el producto final esté listo. ¿Suena familiar?
El rediseño SSIS redujo muchas de las complejidades, porque se podía extraer datos de
estos origenes directamente en el data flow en SSIS y unirse a los origenes de distinto
tipo. También es capaz de convertir la compleja lógica T-SQL, relacionada a las tablas
staging a una serie de transformaciones y reducir enormemente el uso de disco de E/S
pasando de 15 a 3 tablas staging.
El resultado neto fue de tres paquetes SSIS que se ejecutaria en 25 minutos. Lo que
genera una ganancia de tiempo. Además, el uso de SSIS redujo gastos de hardware y
gestión del proceso antiguo, que permite a los profesionales TI de la empresa,
aprovechar mucho más el tiempo, que ellos no pensaban que podrían recuperar.
Usando Transformaciones
Cada transformación tiene una ventana de edición para definir la forma en que la
operación es aplicada a los datos. Por ejemplo, la transformación Derived Column
establece una expresión que genera una nueva columna en el data flow o sustituye una
columna existente. Para abrir el Editor de Transformación, haga doble clic en la
transformación o de clic derecho a la transformación y luego clic en Edit. La Figura
siguiente muestra el Derived Columns Transformation Editor.
En el ejemplo de Derived Column en la Figura 1-26, una de las nuevas columnas que se
adiciona al flujo de datos se denomina FullName, que se basa en la concatenación de la
columna FirstName y la columna LastName usando la expresión SSIS siguiente:
[FirstName] + " " + [LastName]
31 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-26
Otras transformaciones contienen una funcionalidad similar. Cada transformación tiene
un editor específico a la operación elegida.
El siguiente ejemplo utiliza la transformación Slowly Changing en el paquete
DimPromotion para identificar nuevos registros en comparación con los registros
actualizados. La Figura 1-27, muestra el data flow resultante.
Figura 1-27
La Figura 1-27, muestra el resultado de la transformación Slowly Changing Dimension.
Todas las transformaciones y los destinos resultantes fueron creados por el Slowly
Changing Dimension Wizard, que construyó el resto del flujo de datos.
La Figura 1-28, muestra la pagina Slowly Changing Dimension Columns del asistente,
que define que columnas de dimensión, deben causar que tipo de cambio a la salida. Las
opciones son Fixed Attribute, que significa que el cambio no debería ocurrir; Changing
Attribute, que significa que se produce una actualización; o Historical Attribute, que
significa que el cambio crea un nuevo registro.
32 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-28
PRACTICA: Creando Data Flow Simples y Complejos
Estos ejercicios se dirigirán a la creación de data flows que incluyen los origenes,
destinos y uno o más transformaciones. Empezara con un data flow bastante simple, para
luego construir data flows más complejos.
EJERCICIO 1: Crear un Data Flow simple
En este ejercicio, se desarrollará un flujo de datos simple que contiene un adaptador
origen, una transformación Aggregate, y un adaptador destino.
1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto llamado PLibroSSIS que creó en la lección 2, "Creación y edición de
objetos Control Flow", a continuación, abra el paquete MyPackage.dtsx para su
edición.
2. En la ficha Control Flow del Diseñador SSIS, arrastre una tarea Data Flow de la caja
de herramientas dentro del objeto Sequence Container. El objeto Sequence Container
debe incluir ahora una tarea Execute SQL denominada Actualizar ProductLine y un
objeto de tarea Data Flow.
3. Arrastre la flecha de salida de la tarea Actualizar ProductLine hasta el objeto de la
tarea de Data Flow. La flecha de salida es verde, y significa que representa una
restricción de precedencia; véase el Capítulo 3 para obtener más información acerca
de las restricciones de precedencia.
4. Haga clic en la ficha Data Flow en la parte superior del Diseñador SSIS.
5. En el cuadro de herramientas, arrastre un origen OLE DB, ubicada bajo del grupo de
origenes Data Flow, al espacio de trabajo Data Flow. Haga clic derecho en el
elemento fuente OLE DB y, a continuación, haga clic en Edit para abrir el cuadro de
diálogo OLE DB Source Editor.
6. Seleccione AdventureWorks2008R2 en la lista OLE DB connection manager y, a
continuación, haga clic en OK.
7. De la lista desplegable Data access mode, seleccione SQL Command.
8. En el cuadro de texto SQL Command, escriba la siguiente consulta (archivo SQL:
Consulta_SQLCommand):
SELECT SH.OrderDate, SD.LineTotal, P.ProductLine
FROM Sales.SalesOrderHeader SH
INNER JOIN Sales.SalesOrderDetail SD
ON SH.SalesOrderID = SD.SalesOrderID
INNER JOIN Production.Product P
ON SD.ProductID = P.ProductID
33 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
9. Haga clic en la pestaña Columns a la izquierda, a continuación, compruebe que las
columnas OrderDate, LineTotal, y ProductLine se muestran como columnas
disponibles en el adaptador de fuente.
10. Haga clic en OK en el cuadro de diálogo OLE DB Source Editor.
11. Desde la caja de herramientas Data Flow, arrastre una transformación Aggregate a la
superficie de diseño Data Flow, justo debajo del adaptador fuente OLE DB.
12. Vincular la salida de la fuente OLE DB con la transformación Aggregate arrastrando la
flecha verde de salida hacia la transformación Aggregate.
13. Editar la transformación Aggregate haciendo doble clic o darle clic derecho y, a
continuación clic en Edit.
a. En el cuadro de diálogo Aggregate Transformation Editor, seleccione OrderDate
de la lista desplegable Input Column, y luego, compruebe que la operación Group
By esta seleccionada por defecto para la nueva fila.
b. Agregue una segunda fila Input Column mediante la selección de la columna
LineTotal de la lista desplegable. Para la columna Operation de la recientemente
agregada LineTotal, seleccione Sum de la lista. Y por ultimo escriba SubTotal, en
la columna Output Alias para la fila LineTotal.
c. Agregue una tercera fila Input Column seleccionando la columna ProductLine de
la lista.
d. Compruebe que la operación Group By se ha seleccionado por defecto para la
nueva fila.
e. Haga clic en OK en el cuadro de diálogo Aggregate Transformation Editor.
14. En el cuadro de herramientas Data Flow, vaya al grupo de objetos destino Data Flow,
y arrastre el objeto destino OLE DB sobre la superficie de diseño Data Flow.
15. Conecte la salida de la transformación Aggregate al nuevo objeto OLE DB Destination
arrastrando la flecha de salida de la transformación Aggregate hasta el adaptador
OLE DB Destination.
16. Haga clic derecho en el adaptador OLE DB Destination, a continuación, haga clic en
Edit para visualizar el cuadro de dialogo OLE DB Destination Editor.
a. En el cuadro de dialogo OLE DB Destination Editor, compruebe que la lista
desplegable OLE DB connection manager este en AdventureWorks2008R2.
b. Haga clic en el botón New cerca a la lista desplegable Name of the table or the
view.
c. En el cuadro de diálogo Create Table, cambiar el nombre de la nueva tabla a
Sales_Summary. El código listado CREATE TABLE en la ventana, debería ser
similar al siguiente:
CREATE TABLE [Sales_Summary] (
[OrderDate] DATETIME,
[SubTotal] NUMERIC (38,6),
[ProductLine] NVARCHAR(2)
) ON [PRIMARY]
d. Haga click en OK en el cuadro de diálogo Create Table.
e. En la ficha Mappings del cuadro de diálogo OLE Destination Editor, asegúrese de
que las columnas estén todas asignadas del origen al destino.
f. Haga clic en OK para guardar la configuración.
La Figura 1-29, muestra el Data Flow completo.
34 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
Figura 1-29
17. Haga clic derecho en la superficie de diseño Data Flow, y, luego haga clic en la tarea
Execute task. Observe la ejecución del data flow para confirmar el éxito de este
ejercicio.
18. Haga clic en el botón Stop Debugging en la barra de herramientas, para detener el
depurador (o seleccione Debug, Stop Debugging en el menú Debug).
19. Haga clic en el botón Save All en la barra de herramientas BIDS.
EJERCICIO 2: Crear un destino Data Flow
En este ejercicio, creará un data flow que carga nuevos registros en la tabla
DimCustomer de la base de datos AdventureWorksDW2008R2 y que realiza las
actualizaciones de los registros existentes.
1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto llamado PLibroSSIS, a continuación, abra el paquete
DimCustomer.dtsx para su edición. Su paquete DimCustomer.dtsx debería contener
una tarea Execute SQL llamado Truncate Update Table, un objeto de tarea Data
Flow, y una segunda tarea Execute SQL llamado Batch Updates que se creó en la
Lección 2.
2. Haga clic en la ficha Data Flow en la parte superior del Diseñador SSIS para dirigirse
hasta la superficie de diseño Data Flow.
3. Arrastre un adaptador de origen OLE DB de la caja de herramientas a la superficie de
diseño. Renombre el adaptador de origen OLE DB a Origen Cliente. Edite el
adaptador de origen y configure las siguientes propiedades como se muestra (archivo
SQL: Consulta_OrigenCliente):
OLE DB connection manager AdventureWorks2008R2
Data access mode SQL Command
SQL Command Text select convert(nvarchar(15),SC.
AccountNumber) as CustomerAlternateKey,
C.Title, C.FirstName, C.MiddleName,
C.LastName, C.Suffix, C.EmailAddress,
C.AddressLine1, C.AddressLine2,
D.BirthDate, D.MaritalStatus,
D.YearlyIncome, D.DateFirstPurchase,
D.Gender, D.TotalChildren,
D.NumberChildrenAtHome, D.Education,
D.Occupation, D.HomeOwnerFlag,
D.NumberCarsOwned
from Sales.vIndividualCustomer C
inner join Sales.Customer SC
on C.BusinessEntityID = SC.PersonID
inner join Sales.vPersonDemographics D
on C.BusinessEntityID =
D.BusinessEntityID
4. Arrastre un segundo adaptador origen OLE DB de la Toolbox, en la superficie de
diseño del data flow, cambie el nombre a Dim Cliente, y luego edítelo. Edite el
adaptador de origen y configure las siguientes propiedades como se muestra:
35 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
OLE DB connection manager AdventureWorksDW2008R2
Data access mode Table or view
Name of the table or view [dbo].[DimCustomer]
5. Lo siguiente será ordenar los datos de las fuentes, con respecto a la clave del
negocio. En primer lugar, arrastre dos transformaciones Sort del cuadro de
herramientas Data Flow a la superficie de diseño Data Flow, y luego conecte la flecha
de salida del adaptador Origen Cliente a la primera transformación Sort y la de Dim
Cliente a la segunda transformación Sort, como muestra la Figura 1-30.
Figura 1-30
6. Edite la primera transformación Sort y seleccione la casilla de verificación en el lado
izquierdo de la columna CustomerAlternateKey en la Available Input Columns. Haga
clic en OK para guardar la transformación.
7. Edite la segunda transformación Sort y seleccione la casilla de verificación en el lado
izquierdo de la columna CustomerAlternateKey en la Available Input Columns. Haga
clic en OK para guardar la transformación.
8. De la Toolbox Data Flow, arrastre una transformación Merge Join a la superficie de
diseño, a continuación, conecte la flecha de salida de la primera transformación Sort
(procedente de Origen Cliente) a la transformación Merge Join. Cuando aparezca la
caja de dialogo Input Output Selection, elija Merge Join Left Input de la lista
desplegable Input y, a continuación, haga clic en OK.
9. También conecte la flecha de salida de la segunda transformación Sort (procedente
de Dim Cliente) a la transformación Merge Join.
10. Editar la transformación Merge Join para mostrar el cuadro de dialogo Merge Join
Transformation Editor.
a. Cambiar la configuración en la lista desplegable Join Type a Left Outer Join, el
cual cargara todas las filas de origen de la consulta Origen Cliente (el origen de la
izquierda de la Transformación Merge Join) y las filas coincidentes del lado
derecho (que es de la fuente dbo.DimCustomer).
b. Para retornar todas las columnas de la consulta Origen Cliente, seleccione la
casilla de verificación que está a la izquierda de la columna de cabecera Name en
la lista Sort de la izquierda. Al hacer esto seleccionará todas las casillas de
verificación de cada columna que es el resultado deseado.
c. En la lista de la derecha de columnas del Dim Cliente, seleccione sólo la casilla de
verificación junto a la columna CustomerAlternateKey.
d. Desplácese hacia abajo por la lista Output Columns a la parte inferior del cuadro
de dialogo Merge Join Transformation Editor hasta el final, y para la columna
CustomerAlternateKey, cambie el valor de Output Alias a
Dim_CustomerAlternateKey.
e. Haga clic en OK para guardar los cambios a la transformación Merge Join.
11. Desde la Toolbox Data Flow, arrastre una transformación Conditional Split a la
superficie de diseño Data Fow, y luego conecte la flecha de salida de la
transformación Merge Join a la transformación Conditional Split.
12. Edite la Transformación Conditional Split para mostrar el caja de dialogo Conditional
Split Transformation Editor.
a. Crear una nueva salida escribiendo Nuevos Registros en el cuadro Output Name
para la primera fila de la lista de salida.
36 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
b. En la misma fila de la lista de salida, escriba el código siguiente en el campo
Condition:
ISNULL ([Dim_CustomerAlternateKey]) == TRUE
c. En la caja Default Output Name, cambie el valor de Conditional Split Default
Output a Actualizar Registros.
d. Haga clic en OK para guardar los cambios en el cuadro de dialogo Conditional
Split Transformation Editor.
13. Desde la Toolbox Data Flow, arrastre un adaptador de destino OLE DB a la superficie
de diseño Data Flow (asegúrese de no arrastrar el adaptador de origen similar, sino el
adaptador de destino), y luego cambiar su nombre a Tabla DimCustomer.
14. Arrastre la flecha de salida de la Transformación Conditional Split a este nuevo
adaptador destino OLE DB. Cuando se solicite en el cuadro de diálogo Input Output
Selection, seleccione Nuevos Registros de la lista desplegable Output y, a
continuación, haga clic en OK.
15. Haga clic derecho en el adaptador de destino Tabla DimCustomer que acaba de crear
y haga clic en Edit para mostrar el cuadro de dialogo OLE DB Destination Editor.
Establezca las siguientes propiedades en el cuadro de dialogo OLE DB Destination
Editor:
OLE DB connection manager AdventureWorksDW2008R2
Data access mode Table or view – fast load
Name of the table or view [dbo].[DimCustomer]
a. Mientras que estamos aún en el cuadro de dialogo OLE DB Destination Editor,
haga clic en la ficha Mappings en el area izquierda del cuadro de diálogo. Esto
asigna automáticamente las columnas del flujo de datos a la tabla DimCustomer
basada en el nombre de columna y el tipo de datos.
b. No todas las columnas se asignan. En la lista Available Input Columns, localice la
columna Education y arrastre a la parte superior de la columna EnglishEducation
de la lista Available Destination Columns. Haga lo mismo para Occupation a
EnglishOccupation y HomeOwnerFlag a HouseOwnerFlag.
c. Haga clic en OK para guardar los cambios en el cuadro de dialogo OLE DB
Destination Editor.
16. Agregue un segundo adaptador destino OLE DB a la superficie de diseño Data Flow
y, luego conecte otra flecha de salida de la transformación Conditional Split al nuevo
adaptador destino OLE DB. Renombre el adaptador de destino Tabla Update
DimCustomer.
17. Edite el adaptador de destino Tabla Update DimCustomer que acaba de crear para
mostrar el cuadro de dialogo OLE DB Destination Editor. Establezca las siguientes
propiedades en el cuadro de dialogo OLE DB Destination Editor:
OLE DB connection manager AdventureWorksDW2008R2
Data access mode Table or view – fast load
Name of the table or view [dbo].[stgDimCustomerUpdates]
a. Mientras que estamos aún en el cuadro de dialogo OLE DB Destination Editor,
haga clic en la ficha Mappings. Esto asigna automáticamente las columnas del
flujo de datos a la tabla DimCustomer basado en el nombre de columna y el tipo
de datos.
b. No todas las columnas se asignan. En la lista Available Input Columns, localice la
columna Educación y arrastre a la parte superior de la columna EnglishEducation
de la lista Available Destination Columns. Haga lo mismo para Occupation a
EnglishOccupation y HomeOwnerFlag a HouseOwnerFlag.
37 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2
Narcizo D.Hinojosa Chirinos.
c. Haga clic en OK para guardar los cambios en el cuadro de dialogo OLE DB
Destination Editor.
Su data flow ahora debe ser similar a la que se muestra en la siguiente Figura 1-31.
Figura 1-31
18. Confirmar el correcto desarrollo de su paquete, ejecutando el paquete en BIDS.
19. Seleccione Debug, Stop Debugging del menú Debug para detener el depurador, y
a continuación, haga clic en el botón Save All en la barra de herramientas BIDS.
EJERCICIO 3: Cargando Dimensiones
En este ejercicio, aprenderá cómo usar la tarea Slowly Changing Dimension y su
asistente acompañante para cargar una nueva dimensión SpecialOffer. A continuación
se realizarán algunos cambios a los datos de origen, y verá cómo se aplican a la tabla de
dimensiones por medio de la tarea.
1. Ejecute la siguiente consulta en el Management Studio:
USE AdventureWorksDW2008R2
GO
IF(OBJECT_ID('[dbo].[DimSpecialOffer]')) IS NOT NULL
DROP TABLE [dbo].[DimSpecialOffer]
GO
CREATE TABLE [dbo].[DimSpecialOffer](
[SpecialOfferKey] [int] IDENTITY(1,1) NOT NULL
CONSTRAINT [PK_SpecialOffer_SpecialOfferKey] PRIMARY KEY
CLUSTERED ,
[SpecialOfferAlternateKey] [int] NULL,
[SpecialOfferDescription] [nvarchar](255) NULL,
[DiscountPct] [smallmoney] NULL,
[SpecialOfferType] [nvarchar](50) NULL,
[SpecialOfferCategory] [nvarchar](50) NULL,
[StartDate] [datetime] NOT NULL,
[EndDate] [datetime] NULL,
[MinQty] [int] NULL,
[MaxQty] [int] NULL,
EffectiveDate datetime NOT NULL,
ExpirationDate datetime NULL
)
2. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS),
abra el proyecto llamado PLibroSSIS, a continuación, abra el paquete
DimPromotion.dtsx para su edición.
3. Asegúrese de que la ficha Control Flow este activa.
4. Haga clic derecho en Connection Manager de la ficha Control Flow y seleccione New
OLE DB Connection.
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes
SSIS Paquetes

Más contenido relacionado

La actualidad más candente

Administración de Oracle - Tema 02 - Instalación
Administración de Oracle - Tema 02 - InstalaciónAdministración de Oracle - Tema 02 - Instalación
Administración de Oracle - Tema 02 - InstalaciónHector Martinez
 
Componentes de sql server 2008
Componentes de sql server 2008Componentes de sql server 2008
Componentes de sql server 2008Jillian Motoharu
 
Administración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - IntroducciónAdministración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - IntroducciónHector Martinez
 
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosHector Martinez
 
Android DB por Cesar Cespedes
Android DB por Cesar CespedesAndroid DB por Cesar Cespedes
Android DB por Cesar CespedesLima GTUG
 
Tutorial Sql Server 7
Tutorial Sql Server 7Tutorial Sql Server 7
Tutorial Sql Server 7semuvi
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Antonio Ortiz
 

La actualidad más candente (17)

Administración de Oracle - Tema 02 - Instalación
Administración de Oracle - Tema 02 - InstalaciónAdministración de Oracle - Tema 02 - Instalación
Administración de Oracle - Tema 02 - Instalación
 
Presentación SQL Server 2012
Presentación SQL Server 2012Presentación SQL Server 2012
Presentación SQL Server 2012
 
Componentes de sql server 2008
Componentes de sql server 2008Componentes de sql server 2008
Componentes de sql server 2008
 
Herramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bdHerramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bd
 
Administración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - IntroducciónAdministración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - Introducción
 
Versiones de sql
Versiones de sqlVersiones de sql
Versiones de sql
 
Sql server 7.0
Sql server 7.0Sql server 7.0
Sql server 7.0
 
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
 
Bases de datos distribuidas
Bases de datos distribuidasBases de datos distribuidas
Bases de datos distribuidas
 
Taller2
Taller2Taller2
Taller2
 
Android DB por Cesar Cespedes
Android DB por Cesar CespedesAndroid DB por Cesar Cespedes
Android DB por Cesar Cespedes
 
Tutorial Sql Server 7
Tutorial Sql Server 7Tutorial Sql Server 7
Tutorial Sql Server 7
 
Manual de access 97
Manual de access 97Manual de access 97
Manual de access 97
 
Windows server2008
Windows server2008Windows server2008
Windows server2008
 
Base de datos en sql
Base de datos en sqlBase de datos en sql
Base de datos en sql
 
Exchange server
Exchange serverExchange server
Exchange server
 
Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012Bases de Datos Distribuidas con Sql Server 2012
Bases de Datos Distribuidas con Sql Server 2012
 

Similar a SSIS Paquetes

Universidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamartUniversidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamartVictor Dolores Marcos
 
Instalación SQL Server 2019 2.pptx
Instalación SQL Server 2019 2.pptxInstalación SQL Server 2019 2.pptx
Instalación SQL Server 2019 2.pptxCESARHERNANPATRICIOP1
 
SQL Server Integration Services
SQL Server Integration ServicesSQL Server Integration Services
SQL Server Integration Servicesbrobelo
 
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp024489756
 
Tutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteTutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteCambiar una estructura
 
Guia 1 conexion a base de datos sql server
Guia 1 conexion a base de datos sql serverGuia 1 conexion a base de datos sql server
Guia 1 conexion a base de datos sql serverMayito CH
 
conexion a base de datos sql server
conexion a base de datos sql serverconexion a base de datos sql server
conexion a base de datos sql serverMayito CH
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oraclejubacalo
 
Manual instalacion sql_server
Manual instalacion sql_serverManual instalacion sql_server
Manual instalacion sql_serverJhon_Marjorie
 
Base de Datos Desde Visual Basic 6.0
Base de Datos Desde Visual Basic 6.0Base de Datos Desde Visual Basic 6.0
Base de Datos Desde Visual Basic 6.0CristianRomero179
 
Evaluativa # 5
Evaluativa # 5Evaluativa # 5
Evaluativa # 5David Soto
 

Similar a SSIS Paquetes (20)

Universidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamartUniversidad tecnológica de tehuacán datamart
Universidad tecnológica de tehuacán datamart
 
informe
informeinforme
informe
 
Instalación SQL Server 2019 2.pptx
Instalación SQL Server 2019 2.pptxInstalación SQL Server 2019 2.pptx
Instalación SQL Server 2019 2.pptx
 
SQL Server Integration Services
SQL Server Integration ServicesSQL Server Integration Services
SQL Server Integration Services
 
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
 
Tutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteTutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin Asistente
 
Sql sever 2008
Sql sever 2008Sql sever 2008
Sql sever 2008
 
Dprn3 u3 a1_rahv
Dprn3 u3 a1_rahvDprn3 u3 a1_rahv
Dprn3 u3 a1_rahv
 
ejemplo de diseño
ejemplo de diseñoejemplo de diseño
ejemplo de diseño
 
Base de Datos (Grupo3).pptx
Base de Datos (Grupo3).pptxBase de Datos (Grupo3).pptx
Base de Datos (Grupo3).pptx
 
Guia 1 conexion a base de datos sql server
Guia 1 conexion a base de datos sql serverGuia 1 conexion a base de datos sql server
Guia 1 conexion a base de datos sql server
 
conexion a base de datos sql server
conexion a base de datos sql serverconexion a base de datos sql server
conexion a base de datos sql server
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Manual instalacion sql_server
Manual instalacion sql_serverManual instalacion sql_server
Manual instalacion sql_server
 
Ds dprn3 u3_a1_alcz
Ds dprn3 u3_a1_alczDs dprn3 u3_a1_alcz
Ds dprn3 u3_a1_alcz
 
Base de Datos Desde Visual Basic 6.0
Base de Datos Desde Visual Basic 6.0Base de Datos Desde Visual Basic 6.0
Base de Datos Desde Visual Basic 6.0
 
PHP_Mysql.pptx
PHP_Mysql.pptxPHP_Mysql.pptx
PHP_Mysql.pptx
 
Evaluativa # 5
Evaluativa # 5Evaluativa # 5
Evaluativa # 5
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Conexion mysql
Conexion mysqlConexion mysql
Conexion mysql
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

SSIS Paquetes

  • 1. 1 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. CAPITULO 1 Desarrollando Paquetes SSIS Un paquete es el objeto central dentro de SQL Server Integration Services (SSIS) que contiene la lógica de negocios para manejar el flujo de trabajo y el procesamiento de datos. Se Utilizan paquetes SSIS para mover datos desde los orígenes a los destinos y para manejar las precedencias cuando se procesan los datos. Puede crear paquetes utilizando el asistente de Importación y Exportación de SQL Server en SQL Server Management Studio (SSMS) o mediante el Diseñador SSIS en Business Intelligence Development Studio (BIDS). En este capítulo se analiza la creación y la definición de los paquetes en SSIS y el uso de los componentes principales de los objetos Control Flow y Data Flow con orígenes y destinos. SSIS está diseñado para muchas aplicaciones de integración y de procesamiento de datos. Una de esas aplicaciones es el tratamiento de los datos en un data mart o un data warehouse, donde los datos se utilizarán exclusivamente para el análisis y reportes en business intelligence (BI). Aunque muchas empresas utilizan SSIS para BI, hay muchas otras aplicaciones de SSIS. Por ejemplo, muchas organizaciones utilizan SSIS para mover datos de sistemas antiguos hacia nuevos sistemas durante las migraciones de aplicaciones, para integrar datos de múltiples sistemas, pasando los datos de ida y vuelta, para extraer los datos para enviárselos a los proveedores o socios, para limpiar los datos, para importar datos de proveedores o socios, y la lista sigue. Debido a que este paquete de formación se centra en BI, parte del contenido de SSIS y las lecciones cubren el uso de SSIS para la extracción, transformación y carga (ETL) del data warehouse, pero en los capítulos de SSIS y en las lecciones también se explica sobre cómo tomar ventaja de SSIS para otros fines. En este capítulo inicial se explica cómo crear paquetes SSIS y define los objetos básicos contenidos en el Flujo de Control y Flujo de Datos. En capítulos posteriores se describen las características avanzadas, la implementación y los detalles de implementación de SSIS. Objetivos del Examen en este Capítulo:  Implementar el Flujo de Control.  Implementar el Flujo de Datos.  Implementar la lógica de paquetes, usando variables.  Ampliar paquetes SSIS usando código .NET.  Identificar y resolver problemas en el despliegue de la solución SSIS.  Instalar y mantener los componentes SSIS. Antes de Empezar Para completar este capítulo, debe tener:  Conocimiento de Microsoft SQL Server 2008 R2, incluyendo las características y los componentes SSIS.  Experiencia de trabajo con proyectos y soluciones en Business Intelligence Development Studio (BIDS).  Experiencia de trabajo en SQL Server Management Studio (SSMS).  Las bases de datos de ejemplo AdventureWorks y AdventureWorksDW2008 instaladas. Puede descargar las bases de datos del sitio web de CodePlex en http://www.codeplex.com/MSFTDBProdSamples. Lección 1: Creando Paquetes SSIS y Orígenes de Datos
  • 2. 2 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. El objeto central en SSIS es un paquete. Un paquete contiene la lógica de negocio para manejar las tareas de extracción de datos, de manipulación, y de transformación necesarias para mover los datos a los destinos. Los paquetes también contienen elementos del flujo de trabajo para ayudar a procesar los datos. Estos elementos de flujo de trabajo podrían implicar la ejecución de un procedimiento almacenado, mover un archivo desde un servidor FTP a una carpeta de destino en el servidor, o enviar un mensaje e-mail cuando un error ocurre. Cuando se ejecuta un paquete, la lógica interna realiza los pasos diseñados. Los paquetes también contienen conexiones a orígenes de datos y destinos de datos. Se establecen estas conexiones para conectar a diferentes sistemas externos, como bases de datos, archivos, servidores de transferencia de archivos (FTP), Servidores Simple Mail Transfer Protocol (SMTP), y así sucesivamente. Las conexiones son usadas para el motor de procesamiento de datos SSIS (llamado Flujo de Datos), así como para el motor de flujo de trabajo (llamado Flujo de Control). Creando Paquetes SSIS El primer paso para empezar a utilizar SSIS es crear un paquete. Esto se puede hacer en una de dos formas:  Por utilizar el Asistente de Importación y Exportación integrado en SQL Server 2008 R2, que nos guía sobre cómo mover datos de un origen a un destino y genera automáticamente un paquete SSIS. Después de crear un paquete en el asistente, puede ejecutarlo inmediatamente, programarlo, o asociarlo con un proyecto SSIS.  Por la creación explícita de un paquete dentro de un proyecto SSIS en BIDS. BIDS en SQL Server 2008 R2 utiliza la interfaz Microsoft Visual Studio 2008 con plantillas específicas instaladas para crear objetos BI tales como paquetes SSIS. En el entorno de desarrollo BIDS, primero se crea un proyecto SSIS y luego se crean y desarrollan nuevos paquetes. El resto de esta lección explica el uso de ambos métodos para desarrollar paquetes SSIS. Utilizando el Asistente de Importación y Exportación Con SQL Server 2008 R2, utilice el Asistente de Importación y Exportación para copiar los datos sin pasar por el proceso de creación de un proyecto SSIS. Cuando utiliza el asistente, se genera un paquete SSIS que se puede ejecutar inmediatamente o guardarlo y luego modificarlo manualmente o programarlo. Típicamente se inicia el Asistente de Importación y Exportación a través de SSMS cuando se está conectado al motor relacional de SQL Server. SSMS es la herramienta de gestión del SQL Server diseñada principalmente para la gestión de bases de datos, y utilizaremos SSMS muchas veces en las lecciones, a través de este libro. Para iniciar SSMS, desde el menú start, seleccionar Microsoft SQL Server 2008 R2 y luego SQL Server Management Studio. La Figura 1-1 muestra el cuadro de dialogo Conectar con el Servidor, donde se conecta por primera vez al Motor de Base de Datos.
  • 3. 3 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-1 Iniciando el Asistente de Importación y Exportación Como su nombre lo indica, el Asistente de Importación y Exportación puede importar y exportar datos. Utilice las siguientes consideraciones para determinar qué parte del asistente usar:  La importación de datos con el asistente le permite traer a una tabla SQL Server los datos contenidos en orígenes accesibles. Los orígenes incluyen otras bases de datos SQL Server, archivos planos, datos en hojas Microsoft Office Excel o bases de datos Microsoft Office Access, y datos en bases de datos Oracle.  La exportación de datos con el asistente le permite enviar datos de tablas SQL Server, de vistas o de consultas personalizadas a conexiones de archivos planos o de base de datos. Para iniciar el Asistente de Importación y Exportación, siga estos pasos: 1. A través de SSMS, conéctese a la instancia del Motor de Base de Datos de SQL Server 2008 R2 que contiene su origen o su destino. 2. Abra el Explorador de Objetos. Encontrará una lista de varios contenedores de objetos bajo la conexión SQL Server. La carpeta Bases de Datos muestra todas las bases de datos asociadas a la instancia SQL Server. La subcarpeta Bases de Datos del Sistema contiene las bases de datos del sistema. 3. Para iniciar el Asistente de Importación y Exportación, de clic derecho en la base de datos que desee utilizar como origen o destino. 4. Haga clic en Tareas. Si la base de datos es el origen de datos que desea enviar a un sistema diferente, seleccione Exportar Datos. Si la base de datos es el destino para archivos que actualmente existen fuera del sistema, seleccione Importar Datos, como muestra la Figura 1-2.
  • 4. 4 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-2 El asistente le guiará a través de varias páginas de preguntas, cuyas respuestas son utilizadas para construir el paquete resultante. Las páginas del asistente son las siguientes: 1. La página Seleccionar un Origen de Datos le permite especificar la procedencia de sus datos, tal como una base de datos SQL Server, un archivo de Excel, un archivo plano, u otro origen. Si el origen es una base de datos relacional, también puede configurar la seguridad de la conexión. La Figura 1-3 muestra la primera página del Asistente de Importación y Exportación. Figura 1-3 2. La página Seleccionar un Destino permite especificar donde serán enviados sus datos. Se especifica el tipo de destino y, si es aplicable, el nombre del servidor y la configuración de seguridad necesaria para acceder a los datos. Si elige Importar Datos en SSMS para iniciar el asistente, la configuración de destino de datos se enlazará a la base de datos que ha seleccionado antes de iniciar el asistente. 3. Si ha seleccionado un origen de base de datos relacional que permite consultas personalizadas, en la página Especificar Copia de Tabla o Consulta, puede optar por copiar los datos directamente desde el origen hasta el destino o especificar una consulta. Si decide especificar una consulta, se abre una página adicional, llamada Proporcionar una Consulta de Origen, que le permite introducir manualmente la consulta. 4. Si el origen es una base de datos relacional y no se especifica una consulta, puede elegir tablas y vistas de su origen en la página Seleccionar Tablas y Vistas de Origen.
  • 5. 5 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Si el origen es un archivo plano o ha especificado una consulta, sólo el archivo o la consulta está disponible como una opción. También en esta página, puede renombrar la tabla destino y editar las asignaciones de columna por hacer clic en el botón Editar Asignaciones para definir configuraciones de columnas NULL, inserción de identidad, y si la tabla debería ser eliminada y de nuevo ser creada. 5. Utilice la página Guardar y Ejecutar el Paquete para ejecutar el paquete de inmediato o guardar el paquete para su posterior ejecución. Si se guarda el paquete, se puede regresar y editar el paquete mediante el diseñador SSIS, lo que se muestra en el resto de este capítulo. Guardar y Editar Paquetes Creados en el Asistente La última página del asistente le permite ejecutar el paquete inmediatamente o guardarlo. Si decide guardar el paquete autogenerado dentro de un proyecto de Integration Services en BIDS, como muestra la Figura 1-4, puede modificar su contenido después. A veces, deseará utilizar el asistente para generar un paquete básico al cual añadirle lógica más avanzada que el asistente no puede generar. Figura 1-4 En general, el Asistente de Importación y Exportación proporciona una manera rápida de mover datos de un origen a un destino, especialmente para usarlo una sola vez, pero hay algunas limitaciones:  Solo se puede especificar un origen y un destino en el asistente.  Precedencias avanzadas de flujo de trabajo no están disponibles en el asistente.  El asistente no comparte los origenes de datos con otros paquetes. Es necesario evaluar si sus requerimientos de procesamiento de datos le permiten utilizar el asistente o si es necesario desarrollar un nuevo paquete desde cero en BIDS. Creando un Proyecto SSIS en BIDS Aunque el Asistente de Importación y Exportación es útil para generar un paquete rápido que mueve datos de un origen a un destino, estos paquetes son con frecuencia sólo un punto de partida. Tarde o temprano, tendrá que desarrollar ya sea un paquete que tiene requerimientos más complicados o crear un conjunto de paquetes coordinados. Para estos casos, primero debe crear un nuevo proyecto SSIS en BIDS. Nota: OBJETOS EN BIDS Recuerde que cualquier proyecto en BIDS sólo puede contener objetos de un mismo tipo de proyecto, tales como SSIS, SQL Server Analysis Services (SSAS), o SQL Server Reporting Services (SSRS). Sin embargo, un proyecto puede estar asociado con proyectos de diferentes tipos en la misma solución.
  • 6. 6 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Todos los componentes de SQL Server BI se generan de una manera similar a través de la herramienta de desarrollo BIDS. Para iniciar el BIDS, desde el menú Start, seleccione Microsoft SQL Server 2008 R2 y entonces Business Intelligence Development Studio. Siga estos pasos para crear un nuevo proyecto SSIS: 1. En BIDS, elija Nuevo, Proyecto del menú Archivo. (Si tiene Visual Studio 2008 instalado por separado del BIDS, sólo tiene que seleccionar Nuevo Proyecto en el menú Archivo). La Figura 1-5 muestra el cuadro de diálogo Nuevo Proyecto. 2. Rellene el cuadro de diálogo Nuevo Proyecto de la siguiente manera: a. Bajo Tipos de Proyecto, seleccione Proyectos de Business Intelligence. b. Bajo Plantillas, seleccione Proyecto de Integration Services. c. Asignar un nombre a su proyecto en el cuadro Nombre. d. En el cuadro Ubicación, vaya a la ubicación de la carpeta predeterminada para almacenar los nuevos proyectos (en la carpeta …DocumentsVisual Studio 2008projects) o cambiar a una ubicación de su elección. 3 Cuando haya finalizado, haga clic en Aceptar para generar el proyecto. El proyecto contiene varias carpetas de objetos de lógica SSIS, que muestra el Explorador de Soluciones. Puede utilizar estos objetos en sus proyectos SSIS para apuntar a las conexiones y los procesos de datos. La Figura 1-6 muestra un nuevo proyecto, con el paquete por defecto Package.dtsx (creada con el proyecto) en el Diseñador SSIS y el Explorador de Soluciones a la derecha. Figura 1-5 Figura 1-6 Ahora está listo para configurar y desarrollar su paquete. Para agregar un paquete existente, así como uno creado por el Asistente de Importación y Exportación a su proyecto, haga clic derecho en la carpeta Paquetes SSIS en el Explorador de Soluciones, luego, clic en Agregar Paquete Existente. Este cuadro de diálogo le permite importar paquetes de otros proyectos o importar paquetes que ya han sido desplegados.
  • 7. 7 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Tema Clave Cuando crea paquetes en BIDS, el paquete es almacenado en el sistema de archivos con la extensión de archivo .dtsx. Este archivo .dtsx es un archivo XML que contiene la lógica y la disposición para el diseño que ha desarrollado en BIDS, y puede mover el archivo a un proyecto diferente, manualmente desplegado en distintos servidores, o que sea parte de un paquete de despliegue. En el Capítulo 3, "Desplegando y Configurando Paquetes SSIS", y el Capítulo 4, "Administrando, Asegurando y Ejecutando Paquetes SSIS", trabajará con archivos .dtsx durante el despliegue y la ejecución. Desarrollando Orígenes de Datos de Proyecto y Conexiones de Paquete Debido a que el objetivo principal de SSIS es mover datos de origenes a destinos, lo siguiente más importante es, agregar apuntadores a estos orígenes y destinos. Estos apuntadores se llaman origenes de datos y conexiones. Los orígenes de datos se almacenan a nivel de proyectos y se encuentran en el Explorador de Soluciones bajo la carpeta lógica llamada Orígenes de Datos. Las conexiones, por otro lado, son definidas en los paquetes y se encuentran en el panel Administradores de Conexión en la parte inferior de la ficha Flujo de Control o Flujo de Datos. Las conexiones pueden ser basadas en orígenes de datos o pueden ser independientes dentro de los paquetes. Las siguientes secciones le guiaran a través del uso e implementación de orígenes de datos y las conexiones de paquetes. Creación de un Origen de Datos Un origen de datos es un objeto del proyecto SSIS. Los orígenes de datos contienen cadenas de conexión que apuntan a archivos o bases de datos, y se puede referenciar dentro de uno o más paquetes. Los orígenes de datos son opcionales en SSIS, pero son beneficiosos durante el desarrollo; si tiene, un gran número de paquetes que utilizan la misma base de datos o conexión de archivos. Utilizar un origen de datos también ayuda si es necesario cambiar una conexión que se utiliza en muchos paquetes. Basta con cambiar el origen de datos una vez y luego al abrir cada paquete en su proyecto, se sincronizará automáticamente la cadena de conexión almacenada en el paquete, con el origen de datos. Los Orígenes de Datos de Proyecto son para Fines de Desarrollo Solamente Note que después de que un paquete es desplegado a un nuevo entorno y ejecutado fuera del proyecto, la cadena de conexión ya no es actualizada por el origen de datos, del proyecto. En su lugar, debe utilizar las configuraciones de paquete para compartir las cadenas de conexión. Utilizar orígenes de datos en su proyecto y paquetes, es un proceso de dos pasos: 1. Creando el origen de datos. En el Explorador de Soluciones, haga clic derecho en la carpeta Origenes de Datos, y haga clic en Nuevo Origen de Datos. En la página de bienvenida del asistente, haga clic en Siguiente. La Figura 1-7 muestra el Asistente para Orígenes de Datos.
  • 8. 8 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-7 Si ha realizado conexiones en el pasado, en su servidor, una lista en caché de esas conexiones aparece en el área Conexiones de Datos, y puede elegir una conexión existente o hacer clic en el botón New para crear una nueva conexión. La Figura anterior muestra la página de conexión del asistente sin conexiones en caché. 2. Agregando el origen de datos a un paquete. Después de crear un origen de datos en el proyecto, es necesario agregar el origen de datos a sus paquetes. Creación de Administradores de Conexión de Paquetes Un administrador de conexión de paquete, a veces llamado simplemente una conexión de paquete, es independiente de los orígenes de datos. Sin embargo, las conexiones de paquete pueden hacer referencia a un origen de datos del proyecto. Una conexión de paquete permite a los diferentes componentes SSIS comunicarse con un objeto (como una base de datos, archivo o servidor) fuera del paquete. Puede utilizar conexiones de paquete como adaptadores de origen, FTP, servidores de e-mail, o archivos planos. Si enlaza las conexiones de paquete al origen de datos de proyecto; cuando el origen de datos es editado, la conexión de paquete también se actualizará, cuando el paquete está siendo desarrollado. En el entorno de diseño BIDS en la Figura 1-8, el Explorador de Soluciones muestra un origen de datos de proyecto, y dos conexiones de paquete aparecen en el panel Administradores de Conexión en la parte inferior del Diseñador SSIS. Figura 1-8 Los paquetes pueden estar basados en origenes de datos definidos en el proyecto SSIS, o pueden ser conexiones independients dentro de un proyecto. En la Figura anterior, el proyecto tiene un origen de datos denominado AdventureWorks2008, del que también se
  • 9. 9 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. hace referencia en el panel Administradores de Conexion del paquete. En este ejemplo, el paquete contiene otra conexión llamada AventureWorksDW2008, que no hace referencia a un origen de datos del proyecto. El icono utilizado para identificar un origen de datos coincide con el icono de la conexión de paquete, si la conexión de paquete hace referencia a un origen de datos del proyecto. Agregando Conexiones en el Panel Administradores de Conexión Para crear una conexión nueva, haga clic derecho en el panel Administradores de Conexión en la parte inferior de la ficha Flujo de Control, como muestra la Figura 1-9. Puede crear una conexión de un origen de datos del proyecto seleccionando Nueva Conexión desde Origen de Datos, como muestra la Figura 1-9, o puede crear una conexión independiente dentro de un paquete por seleccionar Nueva Conexión y luego elegir otro proveedor de conexión de la lista Tipo de Administrador de Conexion. Una conexión independiente es una conexión que no es compartida durante el desarrollo con otros paquetes, utilizando un origen de datos de proyecto. Conexiones independientes en un paquete que tienen el mismo nombre que una conexión o conexiones de otro paquete pueden, sin embargo, ser actualizadas juntas en tiempo de ejecución a través de la configuración del paquete. Figura 1-9 Modificando un Origen de Datos de Proyecto Cuando se crea una conexión de paquete de un origen de datos, esa conexión es actualizada sólo durante el desarrollo cuando se abre el paquete y el origen de datos ha sido cambiado. Las conexiones de paquete no se actualizan cuando se ejecutan por separado del proyecto SSIS asociado, por ejemplo, cuando se ejecutan desde la línea de comandos. El primer paso para crear una conexión de paquete es elegir el tipo de conexión, como muestra la Figura 1-9. Si selecciona una conexión basada en un origen de datos, la conexión ya ha sido creada. Sin embargo, si opta por otro tipo de conexión, debe realizar al menos un paso más antes de que se complete la conexión. Por ejemplo, si se conecta a una base de datos relacional, debe seleccionar Nueva Conexión OLE DB o Nueva Conexión ADO.NET (dependiendo del proveedor de conexión que desea utilizar para acceder a la base de datos). Después de seleccionar el tipo de conexión, es necesario configurar esa conexión. Cuando se selecciona el tipo de conexión, SSIS le pide que seleccione una cadena de conexión que se ha almacenado en el caché en la máquina que está trabajando o crear una nueva conexión en caché. Si la cadena de conexión está almacenada en caché en el equipo, sólo tiene que seleccionar esa conexión de la lista para añadirlo a la lista de conexiones en el panel Administradores de Conexión en el paquete. Si una cadena de conexión no existe en el caché, lo que necesita es crear una nueva cadena de conexión. Por ejemplo, para definir una nueva cadena de conexión, para una
  • 10. 10 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. conexión OLE DB, en el panel Administradores de Conexión, haga clic derecho y luego haga clic en Nueva Conexión OLE DB. A continuación, en el cuadro de dialogo Configurar el Administrador de Conexiones OLE DB, haga clic en Nueva. En la lista Proveedor, escoja de la lista de proveedores OLE DB que están instaladas en su máquina, y entonces, especifique el nombre de base de datos y las credenciales de seguridad de conexión, como muestra la Figura 1-10, luego, haga clic en Aceptar. Después de especificar las opciones de conexión, puede elegir la conexión recientemente en caché de la lista, luego se añade la nueva conexión al panel Administradores de Conexión en el paquete. Figura 1-10 Ahora que ha terminado de crear el paquete y las conexiones de paquete, está listo para comenzar a desarrollar los componentes del paquete. Las Conexiones son utilizadas en varios componentes del paquete, incluidos las tareas de Flujo de Control Flow, los adaptadores de Flujo de Datos y las transformaciones, controladores de eventos, registro de paquetes, y configuraciones de paquetes. PRACTICA: Creando Nuevos Paquetes, Data Sources y Conexiones Los siguientes ejercicios lo familiarizarán con las tareas comunes de la creación de un nuevo proyecto en BIDS y el trabajo con las data sources y conexiones. EJERCICIO 1: Crear el Proyecto y los Paquetes En este ejercicio, creará un nuevo proyecto SSIS y luego trabajará con un par de paquetes SSIS mediante la adición de data sources y conexiones. 1. Iniciar SQL Server Business Intelligence Development Studio (BIDS), haciendo clic en el botón Start y seleccione All Programs, Microsoft SQL Server 2008 R2, SQL Server Business Intelligence Development Studio. 2. Elegir Nuevo, Proyecto del menú Archivo. (Si tiene Visual Studio 2008 instalado por separado de BIDS, simplemente elija Nuevo Proyecto del menú Archivo). El cuadro de diálogo Nuevo Proyecto muestra todas las plantillas instaladas para Microsoft Visual Studio, incluyendo las plantillas Poryectos de Business Intelligence. 3. En el cuadro de diálogo Nuevo Proyecto, compruebe que Poryectos de Business Intelligence se ha seleccionado en el área Tipos de Proyecto, y luego en el área Plantillas, seleccione la plantilla Proyecto de Integration Services. 4. Cerca de la parte inferior del cuadro de diálogo Nuevo Proyecto, en el cuadro Nombre, escriba Proyecto SSIS como el nombre de su proyecto SSIS. 5. En el cuadro Location, escriba la ruta, a partir de la carpeta de documentos en: C:SSISCodigoCap1.
  • 11. 11 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. 6. A continuación, desactive la casilla de verificación Crear Directorio para la solución, que almacena el proyecto SSIS en la carpeta especificada en el paso 5. 7. Haga clic en Aceptar para que BIDS cree el nuevo proyecto SSIS. 8. Cuando se crea el proyecto, SSIS crea automáticamente un nuevo paquete SSIS llamado Package.dtsx y lo abre en el Diseñador SSIS. En el Explorador de Soluciones, de clic derecho en Package.dtsx, a continuación, de clic en Cambiar Nombre. 9. Renombre el paquete escribiendo MiPaquete.dtsx. BIDS puede pedirle que renombre el objeto de paquete. Si aparece un mensaje que le pide que cambie el nombre del objeto de paquete, haga clic en Si. Siempre haga clic en Si cuando se le pida cambiar el objeto del paquete cuando renombre un paquete, ya que actualiza el nombre interno del paquete. 10. Haga clic en el botón Guardar en la barra de herramientas; luego, cierre el paquete haciendo clic en el botón Cerrar en la esquina superior derecha del Diseñador SSIS. 11. Para crear un nuevo paquete, haga clic derecho en la carpeta Paquetes SSIS en el Explorador de Soluciones y, luego, haga clic en Nuevo Paquete de SSIS. Esto crea un nuevo objeto paquete llamado Package1.dtsx (el número depende de cuántos paquetes se han creado) en la carpeta Paquetes SSIS en el Explorador de Soluciones. 12. Para renombrar el nuevo paquete, haga clic derecho en el paquete, y luego haga clic en Cambiar Nombre. Renombre el paquete a DimCustomer.dtsx porque este paquete contiene la lógica para procesar la tabla de dimensiones de clientes. Cuando se le pida, haga clic en Si para renombrar el objeto paquete. 13. Siguiendo los mismos pasos, cree un paquete más en su proyecto SSIS llamado DimPromotion.dtsx. EJERCICIO 2: Crear Origenes de Datos de Proyecto En este ejercicio, creará dos data sources de proyecto, que serán utilizados en los paquetes como el origen y el destino. 1. Si es necesario, inicie el SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto creado en el Ejercicio 1, Proyecto SSIS y, luego, abra el Explorador de Soluciones (si no está ya en pantalla). Abrir el Explorador de Soluciones, haciendo clic en el botón Explorador de Soluciones de la barra de herramientas estándar. 2. En el Explorador de Soluciones, haga clic derecho en la carpeta Origenes de Datos, y haga clic en Nuevo Origen de Datos. Cuando la página de Bienvenida al Asistente para Origenes de Datos aparezca, haga clic en Siguiente. 3. En la página Seleccionar Como Definir la Conexion, seleccione Crear un Origen de Datos basado en una Conexion Nueva o Existente. 4. Haga clic en Nueva para abrir el cuadro de dialogo Administradores de Conexión. 5. En la lista desplegable Proveedor, seleccione el proveedor OLE DB NativoSQL Server Native Client 10.0 y haga clic en Aceptar. Tipee (local) en el campo Nombre del Servidor. 6. En la lista desplegable Seleccione o Escriba el nombre de la Base de Datos, seleccione AdventureWorks2008. 7. Haga clic en el botón Probar Conexión y, luego, haga clic en Aceptar. Haga clic en Aceptar de nuevo para cerrar el cuadro de dialogo Administradores de Conexión. 8. Seleccione la conexión de datos (local).AdventureWorks2008 de la lista Conexiones de Datos, luego, haga clic en Finalizar en el Asistente de Origenes de Datos. 9. La página Finalizacion del Asistente le pedirá que introduzca un nombre para el nuevo proyecto de origen de datos. Tipee AdventureWorks2008 en el cuadro Nombre de
  • 12. 12 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Origen de Datos, luego, haga clic en Finalizar. Asegúrese de quitar el espacio entre Adventure y Works2008. 10. Seguidamente, repita los pasos 2 al 9 para crear un nuevo origen de datos de proyecto para la base de datos (local).AdventureWorksDW2008, y nombre este origen de datos como AdventureWorksDW2008. 11. Cuando haya terminado de crear los orígenes de datos, haga clic en el botón Guardar Todo en la barra de herramientas de BIDS. EJERCICIO 3: Crear New Package Connection de Origenes de Datos de Proyecto En este ejercicio, va a agregar las Origenes de Datos de proyecto que acaba de crear a los dos paquetes que se han desarrollado. 1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto creado en el Ejercicio 1, Proyecto SSIS y, luego, abra el Explorador de Soluciones. Editar el paquete MiPaquete.dtsx haciendo doble clic en el paquete en el Explorador de Soluciones. 2. Localice el panel Administradores de Conexión (en la parte inferior de la ventana del Diseñador SSIS), haga clic derecho en el panel y luego clic en Nueva Conexión desde Origen de Datos. 3. En el cuadro de diálogo Seleccionar Origen de Datos, seleccione los orígenes de datos AdventureWorks2008 y AdventureWorksDW2008 de la lista y haga clic en Aceptar. Esto pone a los dos orígenes de datos de proyecto en el panel Administradores de Conexión del paquete. 4. Realizar los mismos pasos en el paquete DimCustomer.dtsx para añadir los orígenes de datos de proyecto AdventureWorks2008 y AdventureWorksDW2008 como Administradores de conexión para el paquete. 5. Cuando haya terminado de crear los Administradores de conexión, haga clic en el botón Guardar Todo en la barra de herramientas BIDS. Comprobación Rápida 1. Se le pide combinar los datos de un libro de trabajo Excel y una tabla de base de datos y luego colocar los resultados en un archivo plano de ancho fijo. ¿Se puede realizar esta tarea mediante el Asistente de Importación y Exportación? 2. Es necesario crear paquetes SSIS para procesar sus datos y cubos SSAS para realizar el análisis. ¿Se puede crear ambos objetos en un solo proyecto? 3. ¿Cuál es la diferencia entre un origen de datos de proyecto y una conexión de paquete? 4. Si una conexión hace referencia a un origen de datos y el origen de datos se modifica, ¿Cuándo se actualizará la conexión? Respuestas de Comprobación Rápida 1. No. El Asistente de Importación y Exportación le permite trabajar con un solo origen y un solo destino. Para combinar tareas de fusión de datos o tareas de limpieza de datos, es necesario crear ya sea un nuevo paquete específicamente para ese fin o modificar un paquete previamente creado por el asistente. 2. No. No puede crear ambos objetos SSIS y SSAS en un mismo proyecto, porque BIDS no le permite combinar objetos utilizados para diferentes plataformas. Se necesita construir dos proyectos separados en BIDS: uno para los paquetes de SSIS y otro para los cubos SSAS y las dimensiones. 3. Ambos, orígenes de datos de proyecto y conexiones de paquete son cadenas de conexión. Sin embargo, un origen de datos reside fuera del paquete y puede ser utilizado como una conexión de referencia para más de un paquete. Una conexión de paquete no tiene que estar asociado a un origen de datos. 4. Las conexiones son actualizadas por sus orígenes de datos asociados, únicamente cuando el paquete se abre para su edición en BIDS.
  • 13. 13 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Lección 2: Creando y Editando Objetos de Flujo de Control Ahora que ha creado un proyecto SSIS, paquetes y conexiones de paquete, es hora de empezar a utilizar las características de SSIS para la integración de datos y la lógica de procesamiento. Esta lección y la Lección 3, "Usando adaptadores de Flujo de Datos y transformaciones", se centran en los dos componentes principales dentro de SSIS: el Flujo de Control y el Flujo de Datos. El Flujo de Control es el motor del flujo de trabajo y contiene las tareas de flujo de control, los contenedores y las restricciones de precedencias, que gestionan cuando las tareas y contenedores se ejecutan. El Flujo de Datos, por el contrario, está directamente relacionado con el procesamiento y la transformación de datos de los orígenes a los destinos. En esta lección se analiza la definición de los objetos de flujo de control en la superficie de diseño Flujo de Control. Cuando tiene un proyecto SSIS abierto en BIDS y está diseñando un paquete, las pestañas en la parte superior del Diseñador SSIS le permiten elegir un componente SSIS para trabajarlo. La superficie de diseño de Flujo de Control es la primera pestaña y muestra un espacio de trabajo donde se configuran los objetos de flujo de control. Hay tres tipos principales de objetos de flujo de control:  Las tareas Flujo de Control. Son objetos de flujo de trabajo que realizan trabajos a nivel operativo.  Los contenedores Flujo de Control. Proporcionan un mecanismo de agrupación para tareas y otros contenedores.  Restricciones. Permite conectar tareas y contenedores y definir el orden de ejecución y las precedencias. Creando Tareas Flujo de Control Una tarea flujo de control es un componente SSIS que realiza una operación tal como el envío de un mensaje e-mail, la ejecución de una sentencia SQL, o copiar un archivo desde un servidor FTP. Cuando una tarea Flujo de Control está completa, ya sea correcta o incorrecta. Se utiliza el flujo de control para coordinar la ejecución de tareas en paralelo o para establecer las restricciones de precedencia en base al estado de finalización de tareas. Véase el Capítulo 2, "Depuración y Tratamiento de Error en SSIS", para aprender más acerca de las restricciones de precedencia. Para crear una nueva tarea Flujo de Control en su paquete, arrastre la tarea de la caja de herramientas a la ficha Flujo de Control al Diseñador SSIS. La Figura 1-11, muestra la ventana Cuadro de Herramientas cuando a la ficha Flujo de Control se le hace clic en el Diseñador SSIS. Figura 1-11 Después de agregar una tarea en el espacio de trabajo Flujo de Control, se necesita configurar la tarea para realizar la operación específica que haya seleccionado. Para habilitar la configuración, cada tarea tiene un editor que se puede abrir dándole doble clic
  • 14. 14 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. en la tarea o dándole clic derecho a la tarea y haciendo clic en Editar. La Tabla 1-1 enumera las tareas SSIS bajo la lista Elementos de Flujo de Control en la caja de herramientas. Debe haber notado que hay también una lista Tareas de Plan Mantenimiento para el Flujo de Control. Estos son principalmente para administradores de bases de datos (DBAs), que son los que manejan las bases de datos de SQL Server 2008R2 a través de la interfaz del plan de mantenimiento en SSMS o DBAs que están creando paquetes en BIDS para el mantenimiento de bases de datos. Como puede ver, SSIS ofrece la posibilidad de realizar una serie de diferentes procesamientos y operaciones de integración. Está más allá del alcance de este libro, analizar los patrones de diseño de los componentes, pero se utilizará varias de estas tareas, en algunos ejemplos de las lecciones y un par de tareas serán analizadas aquí. Tabla 1-1. Tareas comunes en SSIS TAREA DESCRIPCION Tarea Script ActiveX Ejecuta Microsoft Visual Basic Scripting Edition (VBScript) y código JScript, que se incluye principalmente por compatibilidad con versiones anteriores, cuando un paquete Servicio de Transformación de Datos (DTS) se migra a SSIS. Tarea Ejecutar DDL de Analysis Services Ejecuta código XML para Análisis (XMLA) a una base de datos SSAS. XMLA es el lenguaje de definición de datos (DDL) para SSAS; por lo tanto, esta tarea le permite realizar cambios de estructura común, tales como añadir particiones a los cubos. Tarea Procesamiento de Analysis Services Permite el procesamiento de objetos SSAS a través de un paquete SSIS. Tarea Insercion Masiva Permite la ejecución de las operaciones de copia masiva en SQL Server. Esta tarea sólo funciona contra un Motor de base de datos SQL Server. Tarea Flujo de Datos Permite el procesamiento de datos de origenes a destinos. La Lección 3 en este capítulo, cubre la tarea Flujo de Datos con más detalle. Tarea Consulta de Mineria de Datos Realiza consultas de minería de datos y le permite capturar los resultados para su análisis. Tarea Generacion de Perfiles de Datos Permite el análisis de data source para patrones, los datos faltantes, llaves candidatas, y estadísticas. Estos resultados suelen informar a los desarrolladores, acerca de que lógica incluir en sus paquetes SSIS, basados en las necesidades de los datos. Tarea Ejecutar Paquete Ejecuta otros paquetes SSIS desplegándolos a SQL Server o al sistema de archivos. Tarea Ejecutar Proceso Ejecuta una operación en línea de comandos, tal como un programa o una ejecución de un archivo de lotes. Tarea Ejecutar SQL Se ejecuta un código SQL en alguna conexión de base de datos, en el lenguaje SQL del motor de base de datos conectada. Tarea Sistema de Archivos Permite copiar, mover y eliminar archivos, así como realizar operaciones de archivo y de carpetas. Tarea FTP Envía y recibe archivos entre el sistema de archivos y un servidor FTP; y realiza operaciones sencillas de archivo y de carpetas en el Servidor FTP. Tarea Cola de Mensajes Integrada con Message Queuing (MSMQ) en un servidor que ejecuta Windows para leer y enviar mensajes. Tarea Script Ejecuta Microsoft Visual Basic 2008 o Microsoft Visual C# 2008 dentro de un paquete SSIS. Tarea Enviar Correo Envía un mensaje e-mail a través de un servidor SMTP. Tareas Transferir Bases de Datos, Inicios de Sesion, Mensajes de Error, Objetos SQL Server, Prodedimientos Almacenados, Jobs. Tareas que copian objetos SQL Server de un sistema a otro, incluyendo bases de datos, Jobs de SQL Server Agent, mensajes de error, inicios de sesión, maestro de procedimientos almacenados y objetos a nivel de base de datos. Tarea Servicio Web Le permite conectarse a un Servicio Web para enviar o recibir información. Tarea Lector de Datos WMI Le permite ejecutar un Windows Management Instrumentation (WMI) en el
  • 15. 15 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. sistema operativo para capturar información del servidor. Tarea Monitor de Eventos WMI Espera por un evento en particular, antes de ejecutarlo. Tarea XML Combinaciones, consultas, y diferentes archivos XML en el servidor. Utilizando Contenedores de Flujo de Control Su paquete debe contener al menos una tarea que lleva a cabo una operación específica; sin embargo, la mayoría de las veces, los paquetes tienen varias tareas que se coordinan entre sí, y se necesita una manera de organizarlas. Aquí es donde un contenedor Flujo de Control puede ayudar. Un contenedor Flujo de Control permite agrupar tareas juntas, para controlar cómo las tareas se ejecutan en paralelo, así como su ordenamiento, registro y transacciones. Los contenedores también pueden ejecutar las tareas dentro de ellas varias veces en base a requisitos iterativos. Así como las tareas, se encuentran los contenedores en el Cuadro de Herramientas, cuando se trabaja en el Flujo de Control. Para utilizar un contenedor, sólo tiene que arrastrar el contenedor del Cuadro de Herramientas hasta el espacio de trabajo Flujo de Control. La pantalla de la Figura 1-12 muestra un Flujo de Control de un paquete que contiene un solo recipiente que contiene varias tareas. Figura 1-12 Adicionalmente, puede arrastrar objetos de tareas y otros contenedores dentro del contenedor. Hay tres tipos de contenedores primarios en SSIS: un contenedor de Secuencias, un contenedor de Bucles For, y un contenedor de Bucles Foreach.  Contenedor de Secuencias. Le permite organizar las tareas subordinadas agrupándolas, y permite aplicar las transacciones o asignar registros en el contenedor.  Contenedor de Bucles For. Proporciona la misma funcionalidad que el contenedor de Secuencias, excepto que también le permite ejecutar las tareas varias veces sobre la base de una condición de evaluación, por ejemplo como un bucle de 1 a 10.  Contenedor de Bucles Foreach. También permite bucles, pero en lugar de proporcionar una expresión de condición, se recorre un conjunto de objetos, tal como archivos en una carpeta. La Figura 1-13 muestra el Editor de Bucles Foreach, que se abre haciendo doble clic en el contenedor o dándole clic derecho en el contenedor y luego clic en Editar. Como se ha descrito, el contenedor de Bucles Foreach puede iterar diferentes tipos de objetos, y las opciones de configuración permiten especificar los objetos sobre los que se aplicará el lazo y la configuración detallada. Por otra parte, los valores de los objetos enumerados se pueden poner en las variables de usuario. Por ejemplo, el contenedor de
  • 16. 16 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Bucles Foreach puede iterar a través de los archivos en una carpeta y retornar los nombres de archivo en una variable. Figura 1-13 Trabajando con Variables de Paquete Las variables dentro de SSIS, son una manera de integrar los objetos por el envío de valores entre las tareas y los contenedores, la aceptación de los valores de orígenes externos, o la construcción de código de forma dinámica para que sea ejecutada. También puede utilizar las variables para auditoría y registro. Para trabajar con variables dentro de un paquete, elija Variables en el menú SSIS (cuando diseñe un paquete). La Figura 1-14 muestra la ventana Variables en BIDS. En la parte superior de la ventana Variables están los botones que le permiten crear y borrar variables, así como ver otras variables dentro de un paquete. Como muestra la Figura siguiente, a todas las variables SSIS se les da un nombre, un ambito, un tipo de datos y un valor. El ámbito define a qué nivel dentro de un paquete, la variable es creada. Por ejemplo, si selecciona un contenedor de Bucles Foreach y hace clic en el botón Agregar Variable en la barra de herramientas de la ventana Variables, la variable está en el ámbito de ese nivel. Cuando no hay tareas o contenedores seleccionados, la variable está en el ámbito en el nivel de paquete completo. Figura 1-14 TEMAS CLAVE Las variables son visibles en una tarea o un contenedor sólo si el alcance de las variables se encuentra en el ámbito de la tarea o contenedor en cuestión, en el ámbito de un nivel de contenedor padre, o en el ámbito del mismo paquete. Por ejemplo, si una tarea
  • 17. 17 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Ejecutar SQL tiene una variable directamente asignada a través del ámbito de la variable, sólo la tarea Ejecutar SQL puede ver y utilizar la variable. Otras tareas o contenedores no podrán hacer referencia a la variable. Por otro lado, si un Contenedor de Bucles Foreach tiene una variable con ámbito a ella, todas las tareas en el contenedor de Bucles Foreach (incluido el contenedor mismo) puede hacer referencia y usar la variable. Las variables son referenciadas como User::[NombreVariable] o System::[NombreVariable]. Dentro de SSIS, hay dos tipos de variables: las variables de sistema y las variables de usuario.  Variables de Sistema. Las variables de sistema no se pueden modificar, pero se puede hacer referencia a ella dentro de las tareas y contenedores. Las variables de sistema son establecidos por el paquete, para los metadatos de seguimiento; tales como el nombre del paquete y el usuario que ejecuta el paquete. Para ver todas las variables de sistema, haga clic en Mostrar Variables de Sistema (el botón con una X) en la barra de herramientas de la ventana Variables.  Variables de Usuario. Puede crear y definir las variables de usuario para cualquier propósito en el paquete. Por ejemplo, el contenedor de Bucles Foreach actualiza variables de usuario con los valores para cada bucle que recorre. En la Figura mostrada anteriormente, los nombres de archivos de todos los ficheros en el disco C:, que comiencen con la palabra Customer, serán asignadas a una variable llamada NombreArchivo. La Figura 1-15 muestra la ficha Asignacion de Variables, en el Editor de Bucles Foreach. Figura 1-15 Usando la tarea Script y la tarea Generacion de Perfiles de Datos Aunque este libro se centra en el desarrollo y el mantenimiento, en lugar del diseño, vale la pena destacar algunas tareas clave de Flujo de control. El objetivo de este libro cubre el uso de código dentro de un paquete, así como la realización de perfiles de datos, así que vamos a mirar a la tarea Script y la tarea Generacion de Perfiles de Datos. Tarea Script Puede utilizar la tarea Script dentro de SSIS para ejecutar código VB.NET o C#.NET. La tarea Script tiene las siguientes características:  Usa las herramientas de la interfaz Visual Studio para aplicaciones 2.0 (VSTA), que permite ejecutar código VB.NET y C#.NET con la completa variedad de funciones y métodos.  Las variables pueden ser referenciadas y actualizadas en un script.  Las conexiones pueden ser referenciadas y actualizadas en un script.  Los puntos de interrupción SSIS se pueden aplicar en el código del script (para la tarea Script). En el Capítulo 2 se discute sobre puntos de ruptura.  Se ejecuta tanto en un entorno de 32 bits (x86) como en un entorno de 64 bits (X64).
  • 18. 18 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. TEMA CLAVE Si desea hacer referencia a variables SSIS en una tarea Script, es necesario incluir las variables en la lista ReadOnlyVariables o ReadWriteVariables, en función de si se accederá a la variable para los propósitos de lectura o actualización de la variable. En el ejemplo de Control Flow mostrado anteriormente en las 3 anteriores Figuras, el paquete está recorriendo a través de archivos Excel y almacenando la ruta del archivo Excel en una variable de paquete. El paquete contiene una conexión a Excel que debe ser actualizado con el valor de la variable, porque cada vez que recorre el paquete, la variable debe ser actualizada. Utilizando una tarea Script, puede actualizar la conexión de Excel con el valor de la variable. El primer paso es arrastrar una tarea Script dentro del contenedor Foreach Loop de la Toolbox. El script debe ser la primera tarea que se ejecuta en el contenedor Foreach Loop, así que se coloca antes de la tarea Execute SQL y se le conecta con una restricción de precedencia. (Las restricciones de precedencia se tratan en el Capítulo 2). La Figura 1-16 muestra el Scrip Task Editor. Figura 1-16 En este ejemplo se utiliza Microsoft Visual Basic 2008 como el ScriptLanguage y se especifica la variable User::FileName en la propiedad ReadOnlyVariables. Para el diseño del script, en el Script Tast Editor, haga clic en Edit Script. Para este ejemplo, el script tiene que actualizar el administrador de conexión de Excel (Ms Excel 97-2003), para apuntar al valor de la variable, como muestra el código siguiente: Dts.Connections("Excel Connection Manager").ConnectionString() = _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _ Dts.Variables("FileName").Value.ToString() + _ ";Extended Properties=""EXCEL 8.0;HDR=YES"";" La referencia a la conexión comienza con Dts.Connections y la referencia a las variables comienza con Dts.Variables. Este código se ejecuta para cada bucle en el contenedor Foreach Loop y actualiza el administrador de conexiones de Excel. Tarea Data Profiling Puede utilizar la tarea Data Profiling para revisar las entidades de fuente de datos, para verificar la limpieza y la integridad de los datos, y para entender cómo los datos están estructuralmente organizados, así como posibles columnas clave y relaciones entre columnas.
  • 19. 19 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. La tarea Data Profiling tiene dos partes: la tarea Data Profiling en el Control Flow que realiza el análisis y el visor Data Profile para revisar los resultados. Para utilizar la tarea Data Profiling, primero debe crear una conexión ADO.NET, donde residan las tablas de origen o vistas. La tarea Data Profiling requiere una conexión ADO.NET para los origenes. A continuación, arrastre la tarea de la Toolbox hasta el Control Flow, y luego, abra la tarea para editar sus propiedades. La forma más sencilla de desarrollar un Data Profiling es hacer clic en el botón Quick Profile en el Editor de tareas Data Profiling. La Figura 1-17 muestra el cuadro de dialogo Single Table Quick Profile Form, configurado para ejecutarse en la vista [Sales].[vPersonDemographics]. Figura 1-17 Tabla 1-2. Características de Tareas Data Profiling PERFIL DESCRIPCION Perfil Column Null Ratio Evalúa la columna y devuelve el porcentaje de valores NULL en la columna con respecto al número total de filas de la tabla. Perfil Column Statistics Para las columnas numeric y datetime, devuelve la dispersión y el promedio de los valores. Perfil Column Value Distribution Identifica la unicidad de los valores en una columna a través de todas las filas de esa columna. Perfil Column Length Distribution Muestra las longitudes de valor distintas para una columna de texto y el porcentaje de todas las filas que cada longitud toma. Perfil Column Pattern Muestran los patrones que se encuentran en la columna de datos y devuelve el patrón de expresión regular que coincide con el patrón. Perfil Candidate Key Identifica una o más columnas que son únicas a través de todas las filas, el porcentaje de la unicidad se muestra. Perfil Functional Dependency Lista de las columnas que tienen valor dependiente de otras columnas en la tabla, donde el valor de una columna se encuentra sólo, cuando el valor de otra columna es distinto. Después de configurar la tarea Data Profiling a través de la caja de dialogo Single Table Quick Profile Form, es necesario especificar el archivo de salida XML en la propiedad Destination. Aquí es donde, la tarea almacena los resultados de los perfiles. Para ver los resultados, abra el Visor Data Profile (Haga clic en Start, seleccione All Programs, Microsoft SQL Server 2008 R2, Integration Services, Data Profile Viewer). Haga clic en Open en la barra de herramientas, y busque el archivo de salida XML, donde se almacenan los resultados. La Figura 1-18 muestra el Data Profile Viewer. El Data Profile Viewer muestra cada tipo de perfil. El panel izquierdo le permite navegar entre los tipos de perfiles y tablas de origen que se perfilan. El panel derecho muestra los resultados.
  • 20. 20 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-18 Probando la ejecución del paquete en BIDS Durante el desarrollo de un paquete, es necesario hacer una prueba de ejecución para comprobar que su paquete y las tareas están configurados correctamente. Puede ejecutar un paquete desde BIDS en tres formas:  Elegir Start Debugging en el menú Debug en la barra de menú.  Hacer clic en Start Debugging (el botón con una flecha que se asemeja al botón Play en un reproductor) en la barra de herramientas.  Presione la tecla F5 en su teclado. Después de que un paquete se ejecuta en BIDS, una nueva pestaña llamada la ficha Progress aparece en el Diseñador SSIS. Esta ficha muestra los resultados de la ejecución y le permite solucionar los errores del paquete que pueda encontrar. La ficha Progress se renombra como Execution Results cuando se retorna a la vista de Diseño. PRACTICA: Creación y edición de una tarea de control de flujo Los siguientes ejercicios le familiarizarán con la creación y edición de una tarea Control Flow y la ejecución del paquete en el entorno de diseño. EJERCICIO 1: Crear una tarea Control Flow y probar la ejecución del paquete. En este ejercicio, trabajara con tareas Control Flow y ejecutará paquetes en el diseñador SSIS. 1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto llamado PLibroSSIS que creó en la Lección 1, "Creación de paquetes SSIS y Data Sources", y a continuación, edite el paquete llamado MyPackage.dtsx (haga clic derecho en el paquete en Solution Explorer y, haga clic en Open). 2. Abra la ventana Toolbox, seleccione Toolbox del menú View, localice la tarea Execute SQL, y arrastrelo al área de trabajo Control Flow de su paquete. 3. Edite el objeto de tarea Execute SQL, haga doble clic en el icono de la tarea o dele clic derecho al icono de la tarea y luego clic en Edit. 4. Cambie la propiedad Connection para utilizar la conexión AdventureWorks2008R2. 5. En la propiedad SQLStatement del cuadro de diálogo Execute SQL Task Editor, escriba el siguiente código: UPDATE Production.Product SET ProductLine = 's' WHERE ProductLine IS NULL
  • 21. 21 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. 6. Haga clic en OK en el cuadro de diálogo de la Tarea Execute SQL para volver al Diseñador SSIS. Haga clic derecho en la tarea Execute SQL, haga clic en Rename, y escriba Actualizar ProductLine. 7. A continuación, arrastre un objeto contenedor Sequence de la Toolbox al área de trabajo del Control Flow. 8. Arrastre la tarea Execute SQL llamada Actualizar ProductLine, que acaba de crear dentro del contenedor Sequence para que la tarea está contenida en la caja del contenedor Sequence. 9. Para verificar la ejecución del paquete, haga clic en Start Debugging en la barra de herramientas Estándar o seleccione Start Debugging en el menú Debug. 10. Cuando la ejecución del paquete este completa, su contenedor Sequence y la tarea Execute SQL deben estar de color verde. 11. Haga clic en la ficha Execution Results (llamado Progress, mientras que el paquete se está ejecutando) en el Diseñador SSIS para ver los detalles de la ejecución. 12. Seleccione el botón Stop Debugging de la barra de herramientas estándar, para detener el depurador (o seleccione Debug, Stop Debugging en el menú Debug). 13. Haga clic en el botón Save All en la barra de herramientas BIDS. EJERCICIO 2: Modificar el paquete ETL DimCustomer del Control Flow En este ejercicio, se iniciará el proceso de construcción del paquete SSIS DimCustomer, que manejará el proceso ETL de la base de datos AdventureWorks2008R2 a la base de datos AdventureWorksDW2008R2. 1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto llamado PLibroSSIS que creó en la lección 1, "Creación de paquetes SSIS y Data Sources", y a continuación, abra el paquete DimCustomer vacío. 2. Desde la Toolbox, arrastre dos tareas Execute SQL al área de trabajo Control Flow y a continuación, arrastre una tarea Data Flow al área de trabajo. 3. A continuación, conecte la primera tarea Execute SQL a la tarea Data Flow arrastrando la restricción de precedencia verde de la tarea Execute SQL hacia la tarea Data Flow. A continuación, conecte la restricción de precedencia verde de la tarea Data Flow a la segunda Tarea Execute SQL. 4. Renombre la primera tarea Execute SQL a Truncate Update Table, y renombre la segunda Tarea Execute SQL a Batch Updates. La Figura 1-19 muestra como lucirá el Control Flow. Figura 1-19 5. Antes de editar las tareas en SSIS, abrir SSMS, conectese al Database Engine, y cree una nueva consulta en la base de datos AdventureWorksDW2008R2. Ejecute el siguiente código (archivo SQL: CrearTabla_stgDimCustomerUpdates): USE AdventureWorksDW2008R2 GO CREATE TABLE [dbo].[stgDimCustomerUpdates]( [CustomerAlternateKey] [nvarchar](15) NULL, [AddressLine1] [nvarchar](60) NULL, [AddressLine2] [nvarchar](60) NULL, [BirthDate] [datetime] NULL, [CommuteDistance] [nvarchar](15) NULL,
  • 22. 22 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. [DateFirstPurchase] [datetime] NULL, [EmailAddress] [nvarchar](50) NULL, [EnglishEducation] [nvarchar](40) NULL, [EnglishOccupation] [nvarchar](100) NULL, [FirstName] [nvarchar](50) NULL, [Gender] [nvarchar](1) NULL, [GeographyKey] [int] NULL, [HouseOwnerFlag] [nvarchar](1) NULL, [LastName] [nvarchar](50) NULL, [MaritalStatus] [nvarchar](1) NULL, [MiddleName] [nvarchar](50) NULL, [NumberCarsOwned] [tinyint] NULL, [NumberChildrenAtHome] [tinyint] NULL, [Phone] [nvarchar](25) NULL, [Suffix] [nvarchar](10) NULL, [Title] [nvarchar](8) NULL, [TotalChildren] [tinyint] NULL, [YearlyIncome] [nvarchar](100) NULL) ON [PRIMARY] 6. Luego que se ha creado exitosamente la tabla, vuelva al paquete SSIS DimCustomer y edite la tarea Execute SQL llamada Truncate Update Table. 7. En el cuadro de dialogo Execute SQL Task Editor, establezca la propiedad Connection a AdventureWorksDW2008R2, a continuación, escriba el siguiente código SQL en la propiedad SQLStatement antes de hacer clic en OK para guardarlo: TRUNCATE TABLE dbo.stgDimCustomerUpdates 8. Editar la última tarea Execute SQL, llamada Batch Updates, y establecer la propiedad Connection a AdventureWorksDW2008R2. 9. En la propiedad SQLStatement, introduzca la siguiente instrucción UPDATE (archivo SQL: Actualizar_DimCustomer). UPDATE dbo.DimCustomer SET AddressLine1 = stgDimCustomerUpdates.AddressLine1 , AddressLine2 = stgDimCustomerUpdates.AddressLine2 , BirthDate = stgDimCustomerUpdates.BirthDate , CommuteDistance = stgDimCustomerUpdates.CommuteDistance , DateFirstPurchase = stgDimCustomerUpdates.DateFirstPurchase , EmailAddress = stgDimCustomerUpdates.EmailAddress , EnglishEducation = stgDimCustomerUpdates.EnglishEducation , EnglishOccupation = stgDimCustomerUpdates.EnglishOccupation , FirstName = stgDimCustomerUpdates.FirstName , Gender = stgDimCustomerUpdates.Gender , GeographyKey = stgDimCustomerUpdates.GeographyKey , HouseOwnerFlag = stgDimCustomerUpdates.HouseOwnerFlag , LastName = stgDimCustomerUpdates.LastName , MaritalStatus = stgDimCustomerUpdates.MaritalStatus , MiddleName = stgDimCustomerUpdates.MiddleName , NumberCarsOwned = stgDimCustomerUpdates.NumberCarsOwned , NumberChildrenAtHome = stgDimCustomerUpdates.NumberChildrenAtHome , Phone = stgDimCustomerUpdates.Phone , Suffix = stgDimCustomerUpdates.Suffix , Title = stgDimCustomerUpdates.Title , TotalChildren = stgDimCustomerUpdates.TotalChildren FROM dbo.DimCustomer DimCustomer INNER JOIN dbo.stgDimCustomerUpdates ON DimCustomer.CustomerAlternateKey = stgDimCustomerUpdates.CustomerAlternateKey 10. Haga clic en OK en el cuadro de diálogo Execute SQL Task Editor, a continuación, guarde el paquete. En la siguiente lección, se completara la parte del Data Flow de este paquete y luego probaremos la ejecución.
  • 23. 23 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Comprobación rápida 1. ¿Cuál es la diferencia entre una tarea Control Flow y un contenedor Control Flow? 2. Para ejecutar un procedimiento almacenado en una base de datos SQL Server, ¿Qué tarea debería elegir? Respuestas de comprobación rápida 1. La tarea Control Flow realiza operaciones, mientras que los contenedores coordinan y agrupan tareas. Por ejemplo, un contenedor Foreach Loop puede recorrer los archivos en un sistema de carpetas, y una Tarea File System integrada dentro de un contenedor puede mover los archivos a una nueva ubicación de carpeta. 2. La tarea Execute SQL puede ejecutar un procedimiento almacenado en SQL Server o cualquier base de datos relacional, para cualquier proveedor de datos que se tenga instalado. La sintaxis de las sentencias ingresadas en la tarea Execute SQL estarán en lenguaje nativo de la base de datos utilizada. Lección 3: Usando adaptadores Data Flow y transformaciones La Lección 2, "Creación y edición de objetos Control Flow", mostró cómo usar las tareas Control Flow y contenedores. Una de las tareas Control Flow más valioso es la tarea Data Flow. Un paquete puede tener cero, uno o más Data Flow. Para trabajar con la tarea Data Flow, puede arrastrar una tarea Data Flow de la Toolbox Control Flow hacia el espacio de trabajo y hacer doble clic en él, o puede hacer clic en la ficha Data Flow en el Diseñador SSIS. Después de hacer clic en la ficha Data Flow, aparece el diseñador Data Flow, donde se puede utilizar el flujo de datos para manipular y transformar los datasets. La tarea Data Flow tiene tres tipos de objetos en la Toolbox:  Adaptadores de origenes Data Flow  Adaptadores de transformaciones Data Flow  Adaptadores de destinos Data Flow La Figura 1-20 muestra la ficha Data Flow con la Toolbox abierta, destacando los origenes Data Flow y algunas transformaciones Data Flow. Observe la diferencia entre los elementos Toolbox Control Flow y los elementos Toolbox Data Flow. Figura 1-20 En esta lección, se verán los detalles de los adaptadores de origen y destino, así como de las transformaciones. Definiendo adaptadores de origen Data Flow Los adaptadores de origen Data Flow utilizan conexiones de paquete, que apuntan a la instancia del servidor o ubicación del archivo de la data source. (La única excepción es el adaptador Raw File, que no utiliza una conexión de paquetes). Un adaptador de origen extrae datos de origen y los mueve dentro del data flow, donde será modificado y enviado
  • 24. 24 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. a un destino. Se crearan adaptadores de origen data flow arrastrando un adaptador de origen de la Toolbox Data Flow hasta la ficha Data Flow en el Diseñador SSIS. La Tabla describe las diferentes fuentes de flujos de datos y sus usos. Tabla 1-3. Origenes Data Flow y sus Usos FUENTE DATA FLOW PROPOSITO Fuente ADO.NET Proporciona conexiones a las tablas o consultas a través de un proveedor ADO.NET. Fuente Excel Permite extracciones de una hoja de trabajo Excel, definida en un archivo Excel. Fuente Flat File Se conecta a un archivo delimitado o de ancho fijo, creado con diferentes páginas de código. Fuente OLE DB Se conecta a los proveedores OLE DB instalados, tales como SQL Server, Access, SSAS y Oracle. Fuente Raw File Almacena datos nativos SSIS en tipo de archivo binario, usado para staging de datos. Fuente XML Permiten que los datos en bruto se extraigan de un archivo XML, requieren de un esquema XML para definir las asociaciones de datos. A modo de ejemplo, la Figura 1-21 muestra la caja de dialogo OLE DB Source Editor para un paquete que está extrayendo datos de la tabla [Sales].[SpecialOffer] de la base de datos AdventureWorks2008R2, con la intención de cargarla en la tabla DimPromotion en AdventureWorksDW2008R2. Figura 1-21 El adaptador de origen OLE DB es similar al adaptador ADO.NET, en que requiere un administrador de conexión y tambien una tabla debe ser seleccionada o una consulta debe ser escrita. En este ejemplo, la lista desplegable Data access mode está configurada a Table or view, y la tabla [Sales].[SpecialOffer] esta seleccionada. Si Data access mode estuviera configurada a SQL Command, podría entrar una consulta para el origen. Creación de Destinos Data Flow Los destinos data flow son similares a los origenes en que utilizan conexiones de paquetes. Sin embargo, los destinos son los extremos finales en un paquete, definiendo la ubicación en la que los datos deben ser colocados. Por ejemplo, si está enviando datos a un archivo Excel desde una tabla de base de datos, su destino será un adaptador Excel Destination. TEMAS CLAVE Muchos objetos SSIS tienen una propiedad ValidateExternalMetadata que puede establecerse a False si el objeto referenciado (como una tabla) no existe cuando el paquete está siendo diseñado. Esta propiedad es generalmente utilizada para los
  • 25. 25 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. adaptadores de origen o de destino, como cuando una tabla de destino es creada durante la ejecución del paquete. Todos los adaptadores de origen se enlazan a los adaptadores de destino en el flujo de datos SSIS. Y hay otros adaptadores de destino que le permiten enviar datos a más destinos inclusive. La Tabla enumera los adaptadores de destino data flow SSIS. Tabla 1-4. Destino Data Flow y sus Usos DESTINO DATA FLOW PROPOSITO Destino ADO.NET Permite la inserción de datos mediante un proveedor administrado ADO.NET. Data Mining Model Training Permite pasar datos del data flow a un modelo de minería de datos en SSAS. Destino DataReader Le permite poner los datos en un recordset ADO.NET que puede ser referenciada, mediante programación. Dimension Processing Permite a las dimensiones SSAS, ser procesadasdirectamente, desde los datos que fluyen a través del flujo de datos. Destino Excel Se utiliza para insertar datos en Excel, incluyendo Excel 2010. Destino Flat File Permite la inserción de datos a un archivo plano, tal como un archivo delimitado por comas o delimitado por tabulaciones. Destino OLE DB Utiliza el proveedor OLE DB para insertar filas a un sistema de destino, que permite una conexión OLE DB. Partition Processing Permite que particiones SSAS sean procesadas directamente, desde los datos que fluyen a través del flujo de datos. Destino RawFile Almacena datos nativos SSIS en un tipo de archivo binario, usado para staging de datos. Destino Recordset Toma los datos del flujo de datos y crea un recordset en una variable de paquete de tipo object. Destino SQL Server Compact Le permite enviar datos a un dispositivo móvil, que ejecute SQL Mobile. Destino SQL Server Proporciona un destino específico de alta velocidad a SQL Server 2008, si el paquete se está ejecutando en SQL Server. TEMAS CLAVE Se puede configurar el adaptador de destino OLE DB para insertar datos de los data flow a través de lotes masivos de datos, en lugar de una fila a la vez. Para utilizar esta técnica de optimización de destino, modifique el destino OLE DB y establezca el Data access mode a Table or view – fast load. Cuando el destino OLE DB no está configurado con carga rápida, sólo una fila a la vez se inserta en la tabla de destino. La Figura 1-22 muestra un data flow simple con una fuente y un destino. El flujo de datos extrae registros de la tabla Sales.SpecialOffer de AdventureWorks2008R2 y los inserta en la tabla DimPromotion de AdventureWorksDW2008R2. Figura 1-22 Al igual que en el origen, el adaptador de destino requiere configuración, tanto en la conexión como en la tabla, en la que las filas se insertan; así como en la asignación de las columnas de flujo de datos, a las columnas de la tabla de destino. La Figura 1-23 muestra el OLE DB Destination Editor, para el ejemplo anterior.
  • 26. 26 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-23 Note que el destino OLE DB utiliza la conexión AdventureWorksDW2008R2 y está configurado por defecto para utilizar la opción Table or view – fast load de la lista desplegable Data access mode. Esto significa que los registros serán procesados con las sentencias de inserción masiva en lugar de una fila a la vez. La Figura 1-24 muestra la ficha Mappings del mismo OLE DB Destination Editor. Aquí es donde se puede asignar columnas disponibles del flujo de datos a las columnas de destino en el adaptador de destino. Todos los adaptadores de destino tienen una ficha Mappings. Figura 1-24 Tenga en cuenta que no todas las columnas se asignan. Sin embargo, si una de las columnas de destino sin asignar, se marca como NOT NULL, el destino del paquete falla cuando se ejecuta. En la sección titulada "Usando Transformaciones" más adelante en esta lección, verá cómo utilizar la transformación Slowly Changing Dimension para manejar los nuevos registros y actualizaciones. Trabajando con Transformaciones Data Flow Las transformaciones le dan la capacidad de modificar y manipular los datos en el flujo de datos. Una transformación realiza una operación, ya sea en una fila de datos a la vez o en varias filas de datos a la vez.
  • 27. 27 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Al igual que con los adaptadores de origen y destino, arrastre las transformaciones de la caja de la Toolbox data flow a la ficha Data Flow del Diseñador SSIS, y edítelos haciendo clic derecho en la transformación que desea cambiar y dándole clic en Edit. Se conectan orígenes, transformaciones y destinos a través de las rutas de datos, que se crean arrastrando la flecha de salida a otro componente en el Data Flow. Las flechas verdes de ruta de datos, son para las filas que se transformaron con éxito; y las flechas rojas de ruta de salida son, para las filas en que falló la transformación, debido a un error, debido a un truncamiento o a un error de conversión. La Figura 1-25 muestra un flujo de datos que conecta un origen a varias transformaciones a través de rutas de datos y finalmente a un destino. Figura 1-25 Seleccionando transformaciones Las Transformaciones realizan una amplia variedad de operaciones en los datos referenciados, y la transformación que elija depende de sus necesidades de procesamiento de datos. Algunas transformaciones operan de manera similar a otras transformaciones, por lo tanto, podemos clasificarlos en grupos naturales de componentes parecidos. TRANSFORMACIONES DE LOGICA A NIVEL DE FILA Las transformaciones más comunes y de fácil configuración realizan operaciones en las filas sin necesidad de otras filas del origen. Estas transformaciones, que, lógicamente, trabajan a nivel de fila, a menudo se desempeñan muy bien. La Tabla enumera las transformaciones de lógica a nivel de fila. Algunos de los usos comunes de estas transformaciones incluyen la realización de cálculos matemáticos, la conversión de un valor de texto a un tipo de datos numérico o decimal, el reemplazo de valores NULL con otros valores. Debido a que la transformación Import Column y Export Column trabajan con tipos de datos binarios grandes, estas dos transformaciones llevan una mayor carga de trabajo. Tabla 1-5. Transformaciones de Lógica a Nivel de Fila TRANSFORMACION DATA FLOW PROPOSITO Audit Agrega columnas adicionales a cada fila, en función de variables de sistema a nivel de paquete, como ExecutionStartTime y PackageName. Transformación Cache Permite que datos que se usarán en una transformación Lookup estén en caché y disponibles para múltiples componentes Lookup. Character Map Realiza operaciones comunes de texto, tal como Uppercase, y permite operaciones de conversión bit, de lingüística avanzada.
  • 28. 28 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Copy Column Duplica valores de columna en cada fila a nuevos nombres de columna. Data Conversion Crea nuevas columnas en cada fila, en función de nuevos tipos de datos convertidos, de otras columnas; por ejemplo, la conversión de texto a numérico. Derived Column Utiliza el lenguaje SSIS Expression para realizar cálculos en el sitio, sobre los valores existentes; alternativamente, permite la adición de nuevas columnas basadas en expresiones y cálculos de otras columnas y variables. Export Column Exporta columnas de objetos binarios grandes (BLOB), una fila a la vez, a un archivo. Import Column Carga archivos binarios como imágenes en la pipeline, hacia un destino de tipo de datos BLOB. Row Count Rastrea el número de filas que fluyen a través de la transformación y almacena el número en una variable de paquete, después de la última fila. TRANSFORMACIONES DE ENTRADAS O DE SALIDAS MULTIPLES Las transformaciones de múltiples entradas y múltiples salidas pueden trabajar con más de una entrada de datos o pueden generar más de una salida, respectivamente. Estas transformaciones proporcionan la capacidad para combinar o ramificar datos y darle al flujo de datos la capacidad total de procesar datos de una o más fuentes a uno o más destinos. En la Tabla se enumeran las transformaciones de entrada múltiple y salida múltiple. Tabla 1-6. Transformaciones de Entrada Multiple y Salida Multiple TRANSFORMACION DATA FLOW PROPOSITO Conditional Split Enruta o filtra los datos basados en expresiones booleanas a una o más salidas, de tal modo que cada fila es enviada, a sólo una ruta de salida. Lookup Permite enlazar los valores de columnas pipeline a las tablas de base de datos externas; columnas adicionales se pueden agregar a los data flow de la tabla externa. Merge Combina las filas de dos entradas similares ordenadas, uno sobre la otra, sobre la base de una llave de ordenación definida. Merge Join Une las filas de dos entradas ordenadas sobre la base de columna(s) de unión definidas, agregando columnas de cada fuente. Multicast Genera una o más salidas idénticas, de la que cada fila es enviada a cada salida. Union All Combina una o más entradas similares, apilando una fila encima de otra, basada en columnas enlazadas. Así como la Tabla describe, que las transformaciones Merge y Merge Join requieren entradas ordenadas. Cuando estos componentes se utilizan en un data flow, la transformación espera por filas de cualquier entrada, en base en el orden definido, para preservar la salida ordenada o enlazar a través de las filas ordenadas, lo que significa que las filas no pueden ser enviadas inmediatamente a la ruta de salida. TEMAS CLAVE Cuando tratamos de determinar que transformación usar que traiga más de un origen de datos, recuerde que la transformación Merge Join trae dos origenes ordenadas juntas y enlaza filas juntas; con un Inner Join, un Full Outer Join, o un Left Outer Join. Merge Join puede enlazar más de una fila a través de las columnas de unión. Este comportamiento es diferente al de la transformación Lookup, que retorna sólo un único enlace a través de las columnas de unión de la tabla Lookup. La transformación Unión All no junta las filas a la vez, sino que trae cada fila por separado de los origenes, apilando las filas juntas. El número de filas en la salida Unión All es el número de filas combinadas de todas las entradas. La transformación Merge es similar a Unión All, excepto que las fuentes tienen que ser ordenados y la posición de orden se mantiene. TRANSFORMACIONES DE MULTIPLES FILAS
  • 29. 29 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Algunas transformaciones realizan un trabajo basado en criterios de filas de entrada multiples o generan múltiples filas de salida, de una fila de entrada única. Estas transformaciones pueden ser más exigentes en la sobrecarga de la operación y la memoria, pero proporcionan valiosas funciones para satisfacer las necesidades del negocio. La Tabla enumera las transformaciones de múltiples filas. Tabla 1-7. Transformaciones de Multiples Filas TRANSFORMACION DATA FLOW PROPOSITO Aggregate Asocia registros basados en agrupaciones definidas, y genera agregaciones, tales como SUM, MAX, MIN y COUNT. Percent Sampling Filtra las filas de entrada al permitir que sólo un porcentaje definido, pase a la ruta de salida. Pivot Toma varias filas de entrada y pivotean las filas para generar una salida con más columnas, basadas en los valores de fila original. Row Sampling Salida de un número de filas fijo, muestrea los datos de toda la entrada, no importa que tan grande sea la salida definida, respecto a la entrada. Sort Ordenar la entrada basada en columnas de orden definido y dirección de ordenamiento y permite la eliminación de duplicados, en las columnas ordenadas. Unpivot Toma una sola fila y varias salidas de filas, pasando los valores de columna a la fila nueva basada en las columnas definidas. En los casos de transformaciones Sort, Aggregate, y Row Sampling, todas las filas de entrada se bloquean, lo que les permite realizar el trabajo antes de enviar las filas a la ruta de salida. Estas transformaciones a menudo requieren más recursos del servidor, memoria y capacidad de procesamiento que otras transformaciones. Transformaciones de preparación de datos Avanzadas El último grupo de transformaciones le permite realizar operaciones avanzadas en las filas de la pipeline de flujo de datos. La Tabla lista estas transformaciones avanzadas de preparación de datos. Tabla 1-8. Transformaciones de Preparacion de Datos Avanzadas TRANSFORMACION DATA FLOW PROPOSITO OLE DB Command Realiza operaciones de base de datos, tales como actualizaciones y eliminaciones, una fila a la vez, sobre la base de parámetros asignados a las filas de entrada. Slowly Changing Dimension Procesa los cambios de dimensión, incluyendo el rastreo de la historia de la dimensión y la actualización de los valores de dimensión. La transformación Slowly Changing Dimensión maneja estos tipos comunes de dimensiones de cambio: Historical Attributes, Fixed Attributes y Changing Attributes. Data Mining Query Aplica las filas de entrada con un modelo de minería de datos para predicción. Fuzzy Grouping Asocia valores de columna con un conjunto de filas basado en la semejanza, para limpieza de datos. Fuzzy Lookup Junta una entrada de flujo de datos a una tabla de referencia basada en la similitud de la columna. La configuración de umbral de similitud indica la cercanía de los enlaces permitidos, un alto valor significa que los valores enlazados están más cerca de la similitud. Script Component Proporciona capacidades de scripting VB.NET en las filas, columnas, entradas y salidas de la pipeline de flujo de datos. Term Extraction Análiza las columnas de entrada de texto para sustantivos de ingles y sustantivos de frases. Term Lookup Análiza las columnas de entrada de texto, frente a un conjunto definido por el usuario, de palabras para asociación.
  • 30. 30 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. CASOS REALES La mayoría de las empresas tienen numerosos sistemas que albergan, todo tipo de datos de sistemas transaccionales, de ventas, recursos humanos, aplicaciones de negocios personalizados. Muchos de estos sistemas aún se ejecutan en plataformas de bases de datos diferentes, tales como SQL Server, Oracle, DB2, o sistemas pasados que no se venden más. La complejidad de los datos dentro de las organizaciones va más allá de la base de datos relacional de la empresa, a menudo incluyen archivos de Excel y aplicaciones departamentales de Access. Navegar a través de estos sistemas puede ser muy difícil, por no decir imposible. SSIS ofrece beneficios reales en estas situaciones, ya que le ayuda a consolidar los datos eficientemente. La tarea consistiría por ejemplo, en simplificar un proceso complicado que involucre a cinco diferentes fuentes de datos. Dos en SQL Server, una en Oracle, otra en Excel, y la última en un archivo plano binario grande creado a partir de un sistema IBM AS/400. Antes de rediseñar el procesamiento de estos datos, la operación requeriría un trabajo nocturno de unas 7,5 horas. El trabajo incluiría un proceso por lotes para convertir el archivo binario AS/400 a ASCII, y el trabajo de extraer datos de Oracle y de Excel a un entorno staging en SQL Server y a través de un procedimiento almacenado bastante grande. Lógica personalizada de unión de datos (numeración de millones de filas) a través de servidores, mediante servidores enlazados y almacenando los datos en cerca de 15 tablas staging antes de que el producto final esté listo. ¿Suena familiar? El rediseño SSIS redujo muchas de las complejidades, porque se podía extraer datos de estos origenes directamente en el data flow en SSIS y unirse a los origenes de distinto tipo. También es capaz de convertir la compleja lógica T-SQL, relacionada a las tablas staging a una serie de transformaciones y reducir enormemente el uso de disco de E/S pasando de 15 a 3 tablas staging. El resultado neto fue de tres paquetes SSIS que se ejecutaria en 25 minutos. Lo que genera una ganancia de tiempo. Además, el uso de SSIS redujo gastos de hardware y gestión del proceso antiguo, que permite a los profesionales TI de la empresa, aprovechar mucho más el tiempo, que ellos no pensaban que podrían recuperar. Usando Transformaciones Cada transformación tiene una ventana de edición para definir la forma en que la operación es aplicada a los datos. Por ejemplo, la transformación Derived Column establece una expresión que genera una nueva columna en el data flow o sustituye una columna existente. Para abrir el Editor de Transformación, haga doble clic en la transformación o de clic derecho a la transformación y luego clic en Edit. La Figura siguiente muestra el Derived Columns Transformation Editor. En el ejemplo de Derived Column en la Figura 1-26, una de las nuevas columnas que se adiciona al flujo de datos se denomina FullName, que se basa en la concatenación de la columna FirstName y la columna LastName usando la expresión SSIS siguiente: [FirstName] + " " + [LastName]
  • 31. 31 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-26 Otras transformaciones contienen una funcionalidad similar. Cada transformación tiene un editor específico a la operación elegida. El siguiente ejemplo utiliza la transformación Slowly Changing en el paquete DimPromotion para identificar nuevos registros en comparación con los registros actualizados. La Figura 1-27, muestra el data flow resultante. Figura 1-27 La Figura 1-27, muestra el resultado de la transformación Slowly Changing Dimension. Todas las transformaciones y los destinos resultantes fueron creados por el Slowly Changing Dimension Wizard, que construyó el resto del flujo de datos. La Figura 1-28, muestra la pagina Slowly Changing Dimension Columns del asistente, que define que columnas de dimensión, deben causar que tipo de cambio a la salida. Las opciones son Fixed Attribute, que significa que el cambio no debería ocurrir; Changing Attribute, que significa que se produce una actualización; o Historical Attribute, que significa que el cambio crea un nuevo registro.
  • 32. 32 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-28 PRACTICA: Creando Data Flow Simples y Complejos Estos ejercicios se dirigirán a la creación de data flows que incluyen los origenes, destinos y uno o más transformaciones. Empezara con un data flow bastante simple, para luego construir data flows más complejos. EJERCICIO 1: Crear un Data Flow simple En este ejercicio, se desarrollará un flujo de datos simple que contiene un adaptador origen, una transformación Aggregate, y un adaptador destino. 1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto llamado PLibroSSIS que creó en la lección 2, "Creación y edición de objetos Control Flow", a continuación, abra el paquete MyPackage.dtsx para su edición. 2. En la ficha Control Flow del Diseñador SSIS, arrastre una tarea Data Flow de la caja de herramientas dentro del objeto Sequence Container. El objeto Sequence Container debe incluir ahora una tarea Execute SQL denominada Actualizar ProductLine y un objeto de tarea Data Flow. 3. Arrastre la flecha de salida de la tarea Actualizar ProductLine hasta el objeto de la tarea de Data Flow. La flecha de salida es verde, y significa que representa una restricción de precedencia; véase el Capítulo 3 para obtener más información acerca de las restricciones de precedencia. 4. Haga clic en la ficha Data Flow en la parte superior del Diseñador SSIS. 5. En el cuadro de herramientas, arrastre un origen OLE DB, ubicada bajo del grupo de origenes Data Flow, al espacio de trabajo Data Flow. Haga clic derecho en el elemento fuente OLE DB y, a continuación, haga clic en Edit para abrir el cuadro de diálogo OLE DB Source Editor. 6. Seleccione AdventureWorks2008R2 en la lista OLE DB connection manager y, a continuación, haga clic en OK. 7. De la lista desplegable Data access mode, seleccione SQL Command. 8. En el cuadro de texto SQL Command, escriba la siguiente consulta (archivo SQL: Consulta_SQLCommand): SELECT SH.OrderDate, SD.LineTotal, P.ProductLine FROM Sales.SalesOrderHeader SH INNER JOIN Sales.SalesOrderDetail SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product P ON SD.ProductID = P.ProductID
  • 33. 33 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. 9. Haga clic en la pestaña Columns a la izquierda, a continuación, compruebe que las columnas OrderDate, LineTotal, y ProductLine se muestran como columnas disponibles en el adaptador de fuente. 10. Haga clic en OK en el cuadro de diálogo OLE DB Source Editor. 11. Desde la caja de herramientas Data Flow, arrastre una transformación Aggregate a la superficie de diseño Data Flow, justo debajo del adaptador fuente OLE DB. 12. Vincular la salida de la fuente OLE DB con la transformación Aggregate arrastrando la flecha verde de salida hacia la transformación Aggregate. 13. Editar la transformación Aggregate haciendo doble clic o darle clic derecho y, a continuación clic en Edit. a. En el cuadro de diálogo Aggregate Transformation Editor, seleccione OrderDate de la lista desplegable Input Column, y luego, compruebe que la operación Group By esta seleccionada por defecto para la nueva fila. b. Agregue una segunda fila Input Column mediante la selección de la columna LineTotal de la lista desplegable. Para la columna Operation de la recientemente agregada LineTotal, seleccione Sum de la lista. Y por ultimo escriba SubTotal, en la columna Output Alias para la fila LineTotal. c. Agregue una tercera fila Input Column seleccionando la columna ProductLine de la lista. d. Compruebe que la operación Group By se ha seleccionado por defecto para la nueva fila. e. Haga clic en OK en el cuadro de diálogo Aggregate Transformation Editor. 14. En el cuadro de herramientas Data Flow, vaya al grupo de objetos destino Data Flow, y arrastre el objeto destino OLE DB sobre la superficie de diseño Data Flow. 15. Conecte la salida de la transformación Aggregate al nuevo objeto OLE DB Destination arrastrando la flecha de salida de la transformación Aggregate hasta el adaptador OLE DB Destination. 16. Haga clic derecho en el adaptador OLE DB Destination, a continuación, haga clic en Edit para visualizar el cuadro de dialogo OLE DB Destination Editor. a. En el cuadro de dialogo OLE DB Destination Editor, compruebe que la lista desplegable OLE DB connection manager este en AdventureWorks2008R2. b. Haga clic en el botón New cerca a la lista desplegable Name of the table or the view. c. En el cuadro de diálogo Create Table, cambiar el nombre de la nueva tabla a Sales_Summary. El código listado CREATE TABLE en la ventana, debería ser similar al siguiente: CREATE TABLE [Sales_Summary] ( [OrderDate] DATETIME, [SubTotal] NUMERIC (38,6), [ProductLine] NVARCHAR(2) ) ON [PRIMARY] d. Haga click en OK en el cuadro de diálogo Create Table. e. En la ficha Mappings del cuadro de diálogo OLE Destination Editor, asegúrese de que las columnas estén todas asignadas del origen al destino. f. Haga clic en OK para guardar la configuración. La Figura 1-29, muestra el Data Flow completo.
  • 34. 34 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. Figura 1-29 17. Haga clic derecho en la superficie de diseño Data Flow, y, luego haga clic en la tarea Execute task. Observe la ejecución del data flow para confirmar el éxito de este ejercicio. 18. Haga clic en el botón Stop Debugging en la barra de herramientas, para detener el depurador (o seleccione Debug, Stop Debugging en el menú Debug). 19. Haga clic en el botón Save All en la barra de herramientas BIDS. EJERCICIO 2: Crear un destino Data Flow En este ejercicio, creará un data flow que carga nuevos registros en la tabla DimCustomer de la base de datos AdventureWorksDW2008R2 y que realiza las actualizaciones de los registros existentes. 1. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto llamado PLibroSSIS, a continuación, abra el paquete DimCustomer.dtsx para su edición. Su paquete DimCustomer.dtsx debería contener una tarea Execute SQL llamado Truncate Update Table, un objeto de tarea Data Flow, y una segunda tarea Execute SQL llamado Batch Updates que se creó en la Lección 2. 2. Haga clic en la ficha Data Flow en la parte superior del Diseñador SSIS para dirigirse hasta la superficie de diseño Data Flow. 3. Arrastre un adaptador de origen OLE DB de la caja de herramientas a la superficie de diseño. Renombre el adaptador de origen OLE DB a Origen Cliente. Edite el adaptador de origen y configure las siguientes propiedades como se muestra (archivo SQL: Consulta_OrigenCliente): OLE DB connection manager AdventureWorks2008R2 Data access mode SQL Command SQL Command Text select convert(nvarchar(15),SC. AccountNumber) as CustomerAlternateKey, C.Title, C.FirstName, C.MiddleName, C.LastName, C.Suffix, C.EmailAddress, C.AddressLine1, C.AddressLine2, D.BirthDate, D.MaritalStatus, D.YearlyIncome, D.DateFirstPurchase, D.Gender, D.TotalChildren, D.NumberChildrenAtHome, D.Education, D.Occupation, D.HomeOwnerFlag, D.NumberCarsOwned from Sales.vIndividualCustomer C inner join Sales.Customer SC on C.BusinessEntityID = SC.PersonID inner join Sales.vPersonDemographics D on C.BusinessEntityID = D.BusinessEntityID 4. Arrastre un segundo adaptador origen OLE DB de la Toolbox, en la superficie de diseño del data flow, cambie el nombre a Dim Cliente, y luego edítelo. Edite el adaptador de origen y configure las siguientes propiedades como se muestra:
  • 35. 35 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. OLE DB connection manager AdventureWorksDW2008R2 Data access mode Table or view Name of the table or view [dbo].[DimCustomer] 5. Lo siguiente será ordenar los datos de las fuentes, con respecto a la clave del negocio. En primer lugar, arrastre dos transformaciones Sort del cuadro de herramientas Data Flow a la superficie de diseño Data Flow, y luego conecte la flecha de salida del adaptador Origen Cliente a la primera transformación Sort y la de Dim Cliente a la segunda transformación Sort, como muestra la Figura 1-30. Figura 1-30 6. Edite la primera transformación Sort y seleccione la casilla de verificación en el lado izquierdo de la columna CustomerAlternateKey en la Available Input Columns. Haga clic en OK para guardar la transformación. 7. Edite la segunda transformación Sort y seleccione la casilla de verificación en el lado izquierdo de la columna CustomerAlternateKey en la Available Input Columns. Haga clic en OK para guardar la transformación. 8. De la Toolbox Data Flow, arrastre una transformación Merge Join a la superficie de diseño, a continuación, conecte la flecha de salida de la primera transformación Sort (procedente de Origen Cliente) a la transformación Merge Join. Cuando aparezca la caja de dialogo Input Output Selection, elija Merge Join Left Input de la lista desplegable Input y, a continuación, haga clic en OK. 9. También conecte la flecha de salida de la segunda transformación Sort (procedente de Dim Cliente) a la transformación Merge Join. 10. Editar la transformación Merge Join para mostrar el cuadro de dialogo Merge Join Transformation Editor. a. Cambiar la configuración en la lista desplegable Join Type a Left Outer Join, el cual cargara todas las filas de origen de la consulta Origen Cliente (el origen de la izquierda de la Transformación Merge Join) y las filas coincidentes del lado derecho (que es de la fuente dbo.DimCustomer). b. Para retornar todas las columnas de la consulta Origen Cliente, seleccione la casilla de verificación que está a la izquierda de la columna de cabecera Name en la lista Sort de la izquierda. Al hacer esto seleccionará todas las casillas de verificación de cada columna que es el resultado deseado. c. En la lista de la derecha de columnas del Dim Cliente, seleccione sólo la casilla de verificación junto a la columna CustomerAlternateKey. d. Desplácese hacia abajo por la lista Output Columns a la parte inferior del cuadro de dialogo Merge Join Transformation Editor hasta el final, y para la columna CustomerAlternateKey, cambie el valor de Output Alias a Dim_CustomerAlternateKey. e. Haga clic en OK para guardar los cambios a la transformación Merge Join. 11. Desde la Toolbox Data Flow, arrastre una transformación Conditional Split a la superficie de diseño Data Fow, y luego conecte la flecha de salida de la transformación Merge Join a la transformación Conditional Split. 12. Edite la Transformación Conditional Split para mostrar el caja de dialogo Conditional Split Transformation Editor. a. Crear una nueva salida escribiendo Nuevos Registros en el cuadro Output Name para la primera fila de la lista de salida.
  • 36. 36 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. b. En la misma fila de la lista de salida, escriba el código siguiente en el campo Condition: ISNULL ([Dim_CustomerAlternateKey]) == TRUE c. En la caja Default Output Name, cambie el valor de Conditional Split Default Output a Actualizar Registros. d. Haga clic en OK para guardar los cambios en el cuadro de dialogo Conditional Split Transformation Editor. 13. Desde la Toolbox Data Flow, arrastre un adaptador de destino OLE DB a la superficie de diseño Data Flow (asegúrese de no arrastrar el adaptador de origen similar, sino el adaptador de destino), y luego cambiar su nombre a Tabla DimCustomer. 14. Arrastre la flecha de salida de la Transformación Conditional Split a este nuevo adaptador destino OLE DB. Cuando se solicite en el cuadro de diálogo Input Output Selection, seleccione Nuevos Registros de la lista desplegable Output y, a continuación, haga clic en OK. 15. Haga clic derecho en el adaptador de destino Tabla DimCustomer que acaba de crear y haga clic en Edit para mostrar el cuadro de dialogo OLE DB Destination Editor. Establezca las siguientes propiedades en el cuadro de dialogo OLE DB Destination Editor: OLE DB connection manager AdventureWorksDW2008R2 Data access mode Table or view – fast load Name of the table or view [dbo].[DimCustomer] a. Mientras que estamos aún en el cuadro de dialogo OLE DB Destination Editor, haga clic en la ficha Mappings en el area izquierda del cuadro de diálogo. Esto asigna automáticamente las columnas del flujo de datos a la tabla DimCustomer basada en el nombre de columna y el tipo de datos. b. No todas las columnas se asignan. En la lista Available Input Columns, localice la columna Education y arrastre a la parte superior de la columna EnglishEducation de la lista Available Destination Columns. Haga lo mismo para Occupation a EnglishOccupation y HomeOwnerFlag a HouseOwnerFlag. c. Haga clic en OK para guardar los cambios en el cuadro de dialogo OLE DB Destination Editor. 16. Agregue un segundo adaptador destino OLE DB a la superficie de diseño Data Flow y, luego conecte otra flecha de salida de la transformación Conditional Split al nuevo adaptador destino OLE DB. Renombre el adaptador de destino Tabla Update DimCustomer. 17. Edite el adaptador de destino Tabla Update DimCustomer que acaba de crear para mostrar el cuadro de dialogo OLE DB Destination Editor. Establezca las siguientes propiedades en el cuadro de dialogo OLE DB Destination Editor: OLE DB connection manager AdventureWorksDW2008R2 Data access mode Table or view – fast load Name of the table or view [dbo].[stgDimCustomerUpdates] a. Mientras que estamos aún en el cuadro de dialogo OLE DB Destination Editor, haga clic en la ficha Mappings. Esto asigna automáticamente las columnas del flujo de datos a la tabla DimCustomer basado en el nombre de columna y el tipo de datos. b. No todas las columnas se asignan. En la lista Available Input Columns, localice la columna Educación y arrastre a la parte superior de la columna EnglishEducation de la lista Available Destination Columns. Haga lo mismo para Occupation a EnglishOccupation y HomeOwnerFlag a HouseOwnerFlag.
  • 37. 37 Traducción de Training Kit (Exam 70-448) y personalización a SQL Server 2008 R2 Narcizo D.Hinojosa Chirinos. c. Haga clic en OK para guardar los cambios en el cuadro de dialogo OLE DB Destination Editor. Su data flow ahora debe ser similar a la que se muestra en la siguiente Figura 1-31. Figura 1-31 18. Confirmar el correcto desarrollo de su paquete, ejecutando el paquete en BIDS. 19. Seleccione Debug, Stop Debugging del menú Debug para detener el depurador, y a continuación, haga clic en el botón Save All en la barra de herramientas BIDS. EJERCICIO 3: Cargando Dimensiones En este ejercicio, aprenderá cómo usar la tarea Slowly Changing Dimension y su asistente acompañante para cargar una nueva dimensión SpecialOffer. A continuación se realizarán algunos cambios a los datos de origen, y verá cómo se aplican a la tabla de dimensiones por medio de la tarea. 1. Ejecute la siguiente consulta en el Management Studio: USE AdventureWorksDW2008R2 GO IF(OBJECT_ID('[dbo].[DimSpecialOffer]')) IS NOT NULL DROP TABLE [dbo].[DimSpecialOffer] GO CREATE TABLE [dbo].[DimSpecialOffer]( [SpecialOfferKey] [int] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_SpecialOffer_SpecialOfferKey] PRIMARY KEY CLUSTERED , [SpecialOfferAlternateKey] [int] NULL, [SpecialOfferDescription] [nvarchar](255) NULL, [DiscountPct] [smallmoney] NULL, [SpecialOfferType] [nvarchar](50) NULL, [SpecialOfferCategory] [nvarchar](50) NULL, [StartDate] [datetime] NOT NULL, [EndDate] [datetime] NULL, [MinQty] [int] NULL, [MaxQty] [int] NULL, EffectiveDate datetime NOT NULL, ExpirationDate datetime NULL ) 2. Si es necesario, inicie SQL Server Business Intelligence Development Studio (BIDS), abra el proyecto llamado PLibroSSIS, a continuación, abra el paquete DimPromotion.dtsx para su edición. 3. Asegúrese de que la ficha Control Flow este activa. 4. Haga clic derecho en Connection Manager de la ficha Control Flow y seleccione New OLE DB Connection.