02-Manual SSIS – Creación de un paquete básico

En esta ocasión veremos cómo desarrollar un paquete SSIS básico como una especie de “Hola mundo!” para adentranos en materia.

Supongamos que en nuestra compañía existen dos servidores de datos:

  1. Un servidor transacional con el detalle de cada una de las operaciones que se registran en nuestra empresa.
  2. Un servidor con información comercial que llegará a los distintos departamentos de nuestra empresa.

En este caso nuestro jefe nos pide que agrupemos una determinada información de ventas en base a una serie de criterios.

Para ello los pasos a seguir serían:

  1. Realizar una consulta que agrupe y filtre la información del servidor transacional en base a los requerimientos establecidos.
  2. Realizar un paquete SSIS que guarde la información en el servidor con la información comercial.

Una vez situados en nuestro contexto, iniciaremos nuestro primer paquete SSIS.

Para ello abriremos BIDS y haremos un nuevo proyecto de Integration Services.

Nuevo proyecto SSIS
Nuevo proyecto SSIS

Una vez generado el nuevo proyecto, veremos como la plantilla de proyecto de Visual Studio nos añade cuatro carpetas automáticamente y en la carpeta SSIS Packages tenemos un nuevo paquete SSIS vacío.

Como siempre a la izquierda tenemos todos los componentes que podremos emplear para crear nuestro paquete SSIS. El control más básico es “Data Flow Task” que nos permite definir un origen de datos, una transformación y un destino para almecenar el resultado de nuestras operaciones con los datos.

Data Flow Task

Para iniciar el proceso una vez creado nuestro componente Data Flow Task es hacer doble clic sobre el mismo y tendremos acceso a los siguientes componentes:

  1. Data Flow Sources.
  2. Data Flow Transformations
  3. Data Flow Destinations.

Data Flow Task

Esta disposición es realmente útil para entender el funcionamiento de este componente.

En cuanto a los orígenes de datos tenemos una amplia gama de posibilidades destacando:

  1. Ficheros de texto plano.
  2. Hojas de Excel.
  3. Orígenes OLEDB (Access, SQL Server, Oracle, ODBC, etc.)
  4. Ficheros XML.

Para nuestro caso vamos a emplear un origen ADO para conectarnos a un SQL Server que dispone de la base de datos de ejemplo AdventureWorks.

Por lo tanto añadimos el control “OleDB Source”, hacemos doble clic sobre el mismo y configuramos la conexión y seleccionamos la tabla “Person.Person”.

OleDB Source

Una vez definido el origen, podremos aplicar transformaciones en los datos que leeremos en el paso anterior. En este caso aplicaremos una transformación muy sencilla que es “Derived Colum” que permite añadir una nueva columna en nuestro Data Flow como resultado de una operación con los datos de origen.

Por tanto, arrastramos el componente “Derived Column” y lo conectamos con el “OleDB Source” tirando del conector Success (la flecha verde) que marcará el siguiente paso a ejecutar si el resultado de la lectura de datos ha finalizado sin errores. Estos conectores son extremadamente versátiles para que podamos definir el flujo del SSIS en caso de que se produzcan errores controlados o no.

Derived Column

En nuestro caso vamos a controlar si el campo “Title” de Person es nulo y en ese caso vamos a darle el valor “N/A” (Not Assigned) para guardarlo en nuestra tabla de destino. Para ello hacemos doble clic sobre el componente “Derived Column” para añadir el nuevo campo y la expresión que lo genera.

La expresión que debemos usar en este caso es:

ISNULL(Title) ? “N/A” : Title

En cuanto al nombre de la nueva columna podemos asignarle “TileModified” tal y como se muestra en la siguiente imagen.

Expresión Derived Column

Con esto ya podemos terminar nuestro paquete SSIS asignando un destino para este DataFlow. Por simplicidad, vamos a guardar el destino en una nueva tabla de SQL Server pero lógicamente SSIS nos da muchas más opciones. Por ejemplo,

  1. Fichero Excel.
  2. Fichero de texto.
  3. OleDB (Access, SQL Server, Oracle, ODBC, etc.).
  4. Cubos OLAP.

Arrastramos nuestro componente “OleDB Destination” y haciendo doble clic podemos seleccionar el destino de nuestra transformación.

OleDB DestinationOleDB Destination

Haciendo clic en “New” BIDS ya nos sugiere la creación de una nueva tabla con la estructura de nuestro DataFlow.

Create table destinationEn nuestro caso quitaremos la columna “TileModified” de la SQL de generación de la tabla de destino quedando así:

CREATE TABLE [PersonModified] (
[BusinessEntityID] int,
[PersonType] nvarchar(2),
[NameStyle] bit,
[Title] nvarchar(8),
[FirstName] nvarchar(50),
[MiddleName] nvarchar(50),
[LastName] nvarchar(50),
[Suffix] nvarchar(10),
[EmailPromotion] int,
[AdditionalContactInfo] ntext,
[Demographics] ntext,
[rowguid] uniqueidentifier,
[ModifiedDate] datetime
)

Con la tabla ya creada sólo nos queda seleccionar la opción Mapping para decirle a SSIS que en la columna de destino “Title” debe copiar el valor de la columna de origen “TitleModified”.

OleDB Destination Mappings

Si pulsamos el botón ejecutar en Visual Studio se producirá el lanzamiento del paquete SSIS que realizará el copia de datos, terminando así la creación de nuestro primer SSIS.

DataFlow Result

Espero que la lectura os haya resultado amena!

2 comentarios sobre “02-Manual SSIS – Creación de un paquete básico”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s