SQL Server Integration Services (SSIS) es la herramienta ETL (Extraer, Transformación y Carga) en la suite de Microsoft Business Intelligence. Microsoft cambió la forma en que manejan las cargas de datos completamente con la introducción de SQL Server 2005, que ofrece una funcionalidad ETL completa en lugar de la funcionalidad principalmente Extraer y Cargar disponible en versiones anteriores. El lanzamiento de SQL Server 2012 introdujo otra mejora significativa en las versiones anteriores, proporcionando una nueva forma de configurar paquetes para la implementación. Una vez que se ha completado el desarrollo de paquetes, el desafío es implementar esos paquetes desde un entorno de desarrollo para probar o producir un entorno de producción sin tener que reconfigurarlos manualmente para el nuevo entorno. Configurar paquetes en SSIS no siempre ha sido muy fácil. Un problema principal fueron las diferentes posibilidades que tenían los desarrolladores, incluidos los archivos de configuración XML, las variables de entorno, las entradas de registro, las variables del paquete principal y las configuraciones de SQL Server.
En SSIS 2012 se ha rediseñado la gestión de configuración y ahora hay una forma común de hacerlo. En SSIS 2012 se han introducido parámetros en el nivel del proyecto y del paquete, así como en los entornos del catálogo SSIS y, junto con los parámetros, ofrece una nueva oportunidad para configurar paquetes durante el tiempo de ejecución.
Ahora existen dos modelos de implementación diferentes para ayudar a implementar paquetes y proyectos de SSIS en diferentes entornos como desarrollo, prueba y producción. Los dos modelos de implementación son el modelo de implementación de proyectos y el modelo de implementación de paquetes más antiguo. En este artículo se describe cómo realizar la implementación de proyecto en paquetes SSIS en SQL Server 2012.
Modelo de implementación del proyecto
Una vez que el paquete ha sido desarrollado y probado debe ser desplegado a un ambiente donde se va a utilizar, esto puede ser desarrollo, pruebas o producción.
In SSIS the configuration manager is used to create the different environments. To open the configuration manager either select it from the drop down list on the main toolbar next to the Start Debugging icon
O haga clic con el botón secundario en el proyecto y seleccione Propiedades.
Para abrir Configuration Manager, seleccione Configuration Manager ... en la esquina superior derecha. Para crear un nuevo escenario de configuración, seleccione
Proporcione un nombre para la configuración y copie la configuración de una configuración existente o cree una nueva configuración. Haga clic en Cerrar para volver al modelo de implementación del proyecto.
Normalmente, el nombre del servidor y la ruta del proyecto del servidor difieren entre los entornos, por lo que al establecer esos valores para los distintos entornos es posible desplegar el paquete en diferentes sistemas sólo eligiendo un valor de la lista desplegable.
Ahora, en combinación con los parámetros, el modelo de implementación del proyecto se vuelve más útil ya que es posible asignar diferentes valores a los parámetros para cada escenario, por ejemplo, puede asignar diferentes cadenas de conexión a cada uno de los entornos de desarrollo, prueba y producción. Proporciona la oportunidad de ejecutar paquetes contra diferentes sistemas durante el tiempo de diseño simplemente eligiendo un escenario diferente de la lista desplegable y también la posibilidad de implementar el proyecto y los paquetes con las configuraciones correctas para los diferentes entornos.
Los parámetros son nuevos para SSIS con SQL Server 2012 y se pueden crear en el nivel del proyecto o del paquete. Si se define a nivel de proyecto, puede utilizarse en todos los paquetes dentro de ese proyecto y si se crea a nivel de paquete, sólo se puede acceder a él dentro de ese paquete específico. Los parámetros no pueden almacenar resultados de Execute SQL Tasks, pero otros que no son similares a las variables.
Para crear parámetros de nivel de proyecto, haga doble clic en Project.params en la ventana del Explorador de soluciones.
Haga clic en el botón Añadir parámetro para crear un nuevo parámetro y establecer las siguientes propiedades:
Nombre: proporcione un nombre descriptivo para el parámetro.
Tipo de datos: especifique el tipo de datos del parámetro.
Valor: valor predeterminado del parámetro durante el tiempo de diseño.
Sensible - Si un parámetro se marca como sensible, su valor se cifrará cuando se despliegue el proyecto.
Obligatorio: indica que es obligatorio transmitir un valor a este parámetro antes de que se pueda ejecutar el paquete.
Descripción - Proporcione una descripción del propósito del parámetro.
Del mismo modo para crear parámetros de nivel de paquete, haga clic en la pestaña Parámetros de la ventana Diseño de paquetes. Los nuevos parámetros se crean de la misma manera y se deben establecer las mismas propiedades.
Si se han aplicado diferentes escenarios al proyecto, es posible asignar diferentes valores a un parámetro para cada escenario. Esto puede hacerse haciendo clic en el botón Añadir parámetros a las configuraciones.
Haga clic en Agregar y seleccione el parámetro que desea configurar para los distintos escenarios.
Cambie los valores de cada escenario y haga clic en Aceptar cuando haya terminado. Aquí puede por ejemplo establecer la cadena de conexión o el nombre del servidor o la ruta del archivo para los diferentes servidores.
Ahora que se han creado los entornos y se han creado y configurado los parámetros para los diferentes entornos, el catálogo de servicios de integración debe crearse en el servidor para implementar paquetes en el servidor.
El catálogo se utiliza para almacenar, administrar y supervisar los paquetes desplegados. El catálogo utiliza procedimientos almacenados CLR para que la integración CLR tenga que estar habilitada. Después de activar CLR, puede utilizar el Explorador de objetos de SQL Server Management Studio para crear el catálogo. Simplemente haga clic con el botón derecho en los Catálogos de Integration Services y seleccione Crear catálogo ...
Se le pedirá que proporcione una contraseña que se utiliza para crear una clave maestra de base de datos utilizada para cifrar datos confidenciales en el catálogo.
Después de la creación, el catálogo se muestra dos veces en el explorador de objetos, primero en el nodo de bases de datos y también en el nodo Integration Services. En el nodo de base de datos puede trabajar con el catálogo SSISDB igual que con cualquier otra base de datos de usuarios. En el nodo de servicios de integración, puede administrar el catálogo haciendo clic derecho en los nodos secundarios.
El catálogo almacena todos los entornos que se utilizarán para configurar paquetes durante el tiempo de ejecución. Cada carpeta creada en el catálogo SSIS contiene dos subcarpetas: carpeta Proyectos donde se implementarán y almacenarán los paquetes SSIS y la carpeta Ambientes que gestiona los diferentes entornos creados para proyectos específicos.
Una vez que se ha creado y configurado el catálogo SSIS y se ha creado al menos una carpeta personalizada para almacenar proyectos y paquetes, se pueden crear entornos en la subcarpeta correspondiente. Cada carpeta personalizada puede almacenar diferentes proyectos y entornos para que sea posible reutilizar ambientes ya definidos y también definir más de un entorno por proyecto.
Para crear un nuevo entorno simplemente haga clic con el botón secundario en la subcarpeta y seleccione Crear entorno ... y, a continuación, especifique un nombre y una descripción para el entorno. Después de hacer clic en OK aparecerá una nueva entrada en la carpeta Ambientes.
Para configurar el entorno recién creado, basta con hacer doble clic para abrirlo. Existen tres nodos en el panel izquierdo: General, Variables y Permisos.
El nodo General muestra el nombre, el identificador y la descripción del entorno.
Haga clic en el nodo Variables para crear variables para el entorno. Especifique el nombre de la variable, el tipo, la descripción, el valor y también indique si la información debe marcarse como sensible.
La información relativa a los entornos puede recuperarse del SSISDB, almacenada en las siguientes cuatro tablas en SQL Server:
internal.environments:Stores unique id, name and folder in which the environment is located.
internal.environment_variables:Provides information about variables used in environments, such as name, data type and current value.
internal.environment_references:Stores the relationship between projects and environments. It gives information on which project references which environment.
internal.environment_permissions:Stores information about permissions for each environment.
Estas tablas también ofrecen la posibilidad de modificar los entornos existentes o crear otros nuevos.
Después de desplegar un proyecto en el catálogo de SSIS, es posible configurarlo haciendo clic derecho en el proyecto o en la entrada del paquete y seleccionando Configurar ...
Esto abre la ventana para configurar el paquete SSIS implementado. Todos los parámetros y los gestores de conexión pueden configurarse tanto en el ámbito del proyecto como del paquete.
Para los parámetros se proporciona la siguiente información:
Contenedor: el parámetro está en el nivel del proyecto o del paquete.
Nombre - Nombre del parámetro.
Valor - Valor actual del parámetro.
Para los gestores de conexión se proporciona la siguiente información:
Cadena de conexión: cadena de conexión del gestor de conexiones.
Catálogo Inicial y nombre de Sever - Valores del servidor y del catálogo inicial.
Nombre de usuario y contraseña - Para propósitos de autenticación.
RetainSameConnection - Especifica si todas las tareas deben usar la misma conexión.
Bajo el nodo Referencias es posible asignar ambientes al proyecto, los cuales pueden ser usados para configurar los valores de las diferentes propiedades.
Para asignar las variables de entorno a parámetros o propiedades del gestor de conexiones, haga clic en el botón ... junto a cada valor.
En la ventana Set Parameter Value, elija entre editar el valor manualmente, usar el valor predeterminado del paquete o asignar una variable desde los entornos.
Para cada parámetro que tiene que ser configurable, se necesita crear una variable en los entornos correspondientes.
Si se utiliza más de un entorno en un proyecto y cada uno debe configurar los mismos parámetros y gestores de conexión, es obligatorio que los nombres de las variables sean los mismos para todos los entornos.
Cuando se ha completado el desarrollo del paquete SSIS y del proyecto, podemos implementar el proyecto en el catálogo que se creó. Cuando se utiliza el modelo de implementación del proyecto, al seleccionar deploy se iniciará inmediatamente el Asistente para la implementación de Integration Services. En el asistente, puede optar por implementar el proyecto actual o importar un proyecto existente desde otro servidor, por ejemplo, desea mover su proyecto desde el desarrollo al servidor de prueba.
Después de esto, seleccione el servidor en el que desee implementar y también la ubicación (carpeta) en el catálogo de SSIS.
Es importante tener en cuenta que sólo se puede implementar todo el proyecto y no paquetes individuales dentro de un proyecto.