Marko Radakovic

Maneras de usar y ejecutar los paquetes SQL Server Integration Services

December 18, 2015 by
Los paquetes SSIS (SQL Server Integration Services) son parte de la plataforma de base de datos Microsoft SQL Server y una herramienta para construir aplicaciones de flujo de trabajo e integración de datos de alto rendimiento. También es una herramienta para extracción de datos, transformación y carga (ETL), y puede ser usada para automatizar el mantenimiento de las bases de datos y las actualizaciones de SQL Server. Básicamente, pueden ser usados para mover datos, sin transformaciones, desde una variedad de tipos de fuentes a una variedad de tipos de destinos, incluyendo archivos de texto y otras instancias SQL Server.

Estos paquetes pueden ser almacenados en el servidor Integration Services, en SSIS Package Store, base de datos msdb, y en el archivo de sistema, fuera de la localización que es parte del almacén de paquetes.

En este artículo explicaré cómo ejecutar paquetes SSIS usando:

  • SQL Server Management Studio (SSMS)
  • La utilidad DTEXECUI.EXE
  • La utilidad de línea de comandos DTEXEC.EXE
  • SQL Server Agent Job

Ejecutando paquetes SSIS usando SSMS (SQL Server Management Studio)

La ejecución en SSMS puede ser lograda si la conexión es establecida a través de una instancia en el motor de la Base de Datos que contiene el servidor de Integration Service (el Paquete debe ser almacenado en el servidor de Integration Service), o si la conexión es establecida a través del Integration Server que maneja un almacén de paqueted SSIS (un paquete debe ser almacenado en el almacén de paquetes o en la base de datos msdb).

Para ejecutar un paquete localizado en los catálogos de Integration Services bajo el nodo SSISDB en el panel Object Explorer, haga clic derecho ahí y elija la opción Execute. Antes de ejecutar, configure la ejecución del paquete, si es necesario, usando los ajustes en las opciones Parameters, Connection Managers y Advanced en el diálogo Execute package como se muestra a continuación.

Execute package dialog box

Ejecutar un paquete desde SSMS en otro caso, cuando la conexión es establecida a través de Integration Server, el cual maneja el almacén de paquetes, también está disponible. Después de localizar un paquete bajo el tipo de base de datos Integration Services en Object Explorer, simplemente haga clic derecho y elija la opción Run Package como se muestra en la imagen a continuación.

Choosing the Run Package option

Al elegir la opción Run Package de la lista desplegable se abrirá la ventana Execute Package Utility. A través de muchas pestañas a la izquierda el usuario puede configurar las opciones Execution Options, Reporting y Logging, y añadir configuraciones o archivos de comandos. Después de que la configuración de los parámetros esté lista, un paquete puede ser ejecutado haciendo clic en el botón Execute como muestra la siguiente imagen.

Execute Package Utility window - clicking the Execute button

Hay otra manera de iniciar la ventana Execute Package Utility, usando la Interfaz de Línea de Comandos (Command Line Interface, CLI). La sintaxis para esta utilidad es: C:\&>dtexecui, lo cual abrirá la ventana Execute Package Utility.

Ejecutar un paquete usando este método dará los resultados en la ventana Package Execution Process. Todos los procesos, avisos, errores y validaciones serán presentados y podrán ser usados para análisis posteriores.

Dialog showing the Package Execution Process window

Los paquetes en el almacén de paquetes, la base de datos msdb y el archivo del sistema no pueden ser ejecutados en SSMS si la conexión es establecida a través de una instancia del motor de Base de Datos que alberga al servidor de Integration Services. Sin embargo, es posible importar un paquete a un servidor desde esta localización y ejecutarlo.

También, si una conexión es establecida a través del servicio Integration Services que maneja el almacén de paquetes, los paquetes almacenados en el servidor de Integration Services no pueden ser ejecutados. El paquete almacenado en el archivo del sistema no puede ser ejecutado directamente, pero puede ser importado al almacén de paquetes y luego ejecutado.

Ejecute paquetes SSIS usando la utilidad de línea de comandos DTEXEC.exe

Hay una manera de ejecutar todos los paquetes desde SSMS, sin importar si están almacenados en el servidor de Integration Services, el almacén de paquetes, la base de datos msdb o el archivo del sistema, y no importa si una conexión es establecida a través del servidor de Integration Services o el motor de la Base de Datos que alberga al servidor de Integration Services.

Usar el comando dtexec en cmd evade las limitaciones de conexión y almacenamiento. La Interfaz de Línea de Comandos con todas las opciones disponibles para la ejecución se muestra en la siguiente imagen.

Dialog showing the CLI with all switches available for executing

Por ejemplo, la sintaxis para el paquete llamado “Package1”, localizado en el servidor “Test” puede ser:

C:\dtexec /SQL “\Package1” /SERVER “Test”

Otro ejemplo para el paquete llamado “Package1” localizado en el archive del sistema:

C:\dtexec /F “C:\User\Packages\Package1.dtsx”

Ejecutando paquetes SSIS usando SQL Server Agent Job

La ejecución puede ser programada usando SQL Server Agent Job. Antes de crear una nueva tarea, y programarla, el servicio SQL Agent Job debe ser iniciado.

En Object Explorer haga clic derecho en SQL Server Agent, bajo el nodo del motor de la base de datos seleccione New y elija Job de la lista desplegable, y la ventana New Job se abrirá. En la pestaña General el campo Name es mandatorio. Para programar una tarea, al menos un paso debe ser creado. Los pasos pueden ser creados desde la pestaña Steps haciendo clic en el botón New, una ventana se abrirá como se muestra a continuación.

New job step window

El campo Step name es mandatorio. De la lista desplegable Type, se necesita seleccionar la opción SQL Server Integration Services Package y también SQL Server Agent Service Account de la lista Run as. La opción File system debe elegirse como fuente de paquetes para localizar un paquete en un dispositivo local e importarlo como un paso para la tarea. Note que más opciones para una fuente de paquetes como SQL Server, Package Store y el catálogo SSIS también están disponibles.

Una tarea creada puede ser iniciada manualmente cuando sea que el usuario lo desee, o puede ser programada para correr automáticamente. La programación de tareas puede establecerse bajo la pestaña Schedules.

Setting the Job scheduling under the Schedules tab

El usuario puede establecer los parámetros para programar tareas haciendo clic en New (establecer nuevos parámetros), o Pick (correr una tarea junto con otras ya definidas) como se muestra a continuación.

New Job schedules window - setting up new parameters

Dialog showing Pick Schedule for Job - SSIS example window

Estas son varias maneras de ejecutar paquetes usando SSMS. También, los paquetes pueden ser ejecutados usando SQL Business Intelligence Development Studio, usando los procedimientos almacenados incorporados, Managed API- usando tipos y miembros en el espacio de nombres Microsoft.SqlServer.Management.IntegrationServices y Managed API- usando tipos y miembros en el espacio de nombres Microsoft.SqlServer.Dts.Runtime. Estos serán cubiertos en otro artículo.

Recursos útiles
Different ways to Execute SSIS Packages
Execution of Projects and Packages

Marko Radakovic

Marko Radakovic

Marko is an IT and technical education teacher, who likes movies, video games, and heavy metal music.

He uses his spare time to play guitar, ride a bike and hang out with his friends. During winter, he likes skiing the most, but all other snow activities, too.

He is also author of various SQL Shack articles about SSIS packages and knowledgebase articles about ApexSQL Doc.

View all posts by Marko Radakovic
Marko Radakovic
9,779 Views