Que es SSIS (SQL Server Integration Services)

Integration Services es básicamente una poderosa herramienta de SQL Server para realizar tareas tipo ETL (Extract Transform Load). Fue liberada por Microsoft por primera vez junto con SQL server 2005 y fue el reemplazo de DTS (Data Transformation Services). Ha estado presente desde entonces en todas las distribuciones de SQL Server.

SSIS ofrece una variedad de formas y utilidades para mover datos de un lugar a otro, por ejemplo si se requiere mover datos de una forma rápida de alguna fuente de datos tipo OLE DB (o compatible) SSIS ofrece el Asistente de Importación y Exportación con el cual no solo se pueden mover datos si no realizar transformaciones sobre ellos tales como convertir un tipo de datos en otro. Este asistente permite de forma rápida hacer revisiones de las tablas de origen y escribir consultas para optimizar la forma y cantidad de los datos que se quieren recuperar.

Pero SSIS es mas que un asistente para mover datos, usando el ambiente BIDS (Business Intelligence Development Studio ) que esta basado en Visual Studio se pueden crear paquetes (colecciones de elementos de trabajo) con flujos de trabajo y tareas tan complejas como se quiera, ademas una de las ventajas que ofrece es que BIDS no esta ligado a un servidor particular de SQL Server por lo que no se necesita estar conectado a uno para diseñar un paquete. En otras palabras se puede diseñar el paquete en modo desconectado y al terminar hacer la instalación de este en el servidor de SQL que se quiera.


En términos de arquitectura SSIS se divide en 4 componentes principales:

  • El Servicio SSIS
  • El Motor de ejecucion de SSIS y otros ejecutables
  • El Motor de Flujo de Datos de SSIS y los componentes de flujo de Datos
  • Los Clientes SSIS
En más detalle el servicio SSIS maneja los aspectos operacionales de la herramienta, es basicamente un servicio de Windows que se instala junto con SQL Server y registra la ejecución de paquetes y tiene utilidades para el almacenamiento de los mismos. Realmente este servicio no es necesario para ejecutar paquetes SSIS pero si ya esta corriendo y el servicio es detenido entonces todos los paquetes que se están ejecutando en ese momento se detienen por defecto.

El motor de ejecución y sus programas auxiliares son los que realmente se encargan de correr los paquetes. Este motor es el que salva la distribución de los elementos dentro de BIDS, administra las bitácoras, depuración, configuración, conexiones y transacciones. Adicionalmente maneja los eventos de envió de correos o almacenamiento de bitácoras en la base de datos cuando un evento se dispara en el paquete. Lo ejecutables auxiliares proveen otras funciones tales como: Contenedores, Tareas, Manejadores de Eventos y restricciones de precedencia.

El componente principal de un proyecto SSIS es el paquete, se puede definir como una serie de tareas que se ejecutan en un orden predeterminado, las restricciones de precedencia ayudan a definir en que orden una tarea debe ejecutarse. Normalmente el paquete se salva como un archivo con extensión DTSX, que en esencia es un archivo XML. A su vez una tarea puede definirse como una unidad individual de trabajo, estas tareas proveen diferente funcionalidades dentro del paquete, por ejemplo mover archivos, cargar una archivo en una base de datos, enviar un correo o incluso escribir código fuente (C# o VB.Net) de manera automática. SSIS viene con un numero de tareas ya definidas que pueden ser utilizadas de inmediato, algunas de ellas son:

Bulk Insert (Inserción de volúmenes altos de datos): Carga datos en una tabla usando el comando BULK INSERT.

Data Flow (Flujo de datos): Es una de las mas utilizadas, se usa para cargar y transformar datos dentro de un destino OLE DB.

Execute Package (Ejecución de Paquetes): Ejecuta paquetes dentro de otros paquetes, esto sirve para modularizar paquetes.

Execute Process (Ejecucion de Procesos): Ejecuta un programa externo al paquete.

File System (Sistema de Archivos): Se encarga de operaciones tales como crear directorios, renombrarlos y borrarlo. También maneja operaciones sobre archivos tales como copiar o mover.

FTP (Protocolo de Transferencia de Archivos): Envía o recibe archivos desde servidores FTP.

Script: Ejecuta código fuente creado en Visual Studio (C# o VB.Net)

Send Mail (Envio de Correo): Envía correo a través de un servidor SMTP (Send Mail Transfer Protocol)

Analysis Services Processing (Procesamiento de servicios de análisis): Procesa cubos, dimensiones o minería de modelos se SQL Server Analysis Services.

Web Service (Servicios Web): Ejecuta métodos de servicios web.

WMI Data Reader (Lectores de Datos WMI): Con esta tarea se pueden ejecutar consultas WQL contra WMI (Windows Management Instrumentation). De esta forma se puede leer información de las bitácoras de eventos que guarda Windows o obtener información del hardware instalado por ejemplo.

WMI Event Watcher (Captura de Eventos WMI): Con esta tarea SSIS es capaz de esperar y responder por ciertos eventos que ocurren en el sistema operativo.

XML: Parsea o procesa archivos XML.

estas son solo algunas de la tareas disponible, algunas de ellas son contenedores de mas elementos que se pueden utilizar para operaciones especificas, tal es el caso de las tareas de flujo de datos. También hay otras tareas que se pueden bajar e instalar o incluso utilizando lenguajes como C# o VB.NET y el modelo de objetos de SSIS se pueden crear nuevas tareas.

En síntesis SSIS es una de las herramientas mas innovadoras de migración de datos que han aparecido en el mercado, si ya se tiene una licencia de SQL Server no tiene costo pues se incluye como parte del paquete. Con un poco de imaginación y conocimiento, SSIS puede utilizarse en un sin fin de tareas interesantes.

Comentarios

  1. se puede tener SSIS en la versión Express Edition?
    hagan algún video para tener SSIS y SSAS

    ResponderBorrar

Publicar un comentario