Thomas LeBlanc

Parametrizando la Conexión de Base de Datos en los Servicios de Integración de SQL Server

May 28, 2018 by

Los Servicios de Integración de SQL Server (SQL Server Integration Services, SSIS) han estado creciendo hacia una solución empresarial a través de los últimos tres lanzamientos. Las variables eran un paso en esa dirección, pero con los despliegues de Poyectos al Catálogo SSIS en SQL Server 2012, Microsoft lo ha enfatizado aún más. Los parámetros de proyecto se han vuelto la solución ideal para cambiar valores de variables en los paquetes en tiempo de ejecución. Este artículo va a sumergirse en un ejemplo que parametriza el Nombre del Servidor y el Catálogo Inicial (nombre de la base de datos) en una cadena de conexión para paquetes en un proyecto.

La Cadena de Conexión para la base de datos puede ser creada para un paquete individual o para un proyecto en Visual Studio. Estos Administradores de Conexión están disponibles para ya sea sólo el paquete o cualquier paquete en el proyecto. Si la conexión a la base de datos necesita ser usada en múltiples paquetes, use el Administrador de Conexiones de Proyecto (Project Connection Manager).


Figura 1: Administrador de Conexiones

Una vez que la conexión es creada en el Administrador de Conexiones, está también disponible para los paquetes del proyecto. Las propiedades de la conexión son cambiadas desde el Administrador de Conexiones de Paquete (Package Connection Manager), lo cual puede ser confuso. La Figura 2 muestra el prefijo (proyecto) en el nombre de la conexión en el paquete DimProduct. Una conexión (DW) creada sólo en el paquete no tendrá este prefijo.


Figura 2: Conexiones de Base de Datos

Las propiedades disponibles cuando se selecciona la conexión en el Administrador de Conexiones de Paquetes pueden ser cambiadas para parametrizar la cadena de conexión. La propiedad Expression va a ser usada para cambiar la cadena de conexión. La cadena completa puede ser cambiada o sólo partes como el Nombre del Servidor o el Catálogo Inicial (nombre de la base de datos). La Figura 3 muestra cómo se hace clic derecho en la conexión de base de datos ADVDW14 (proyecto) y se selecciona el submenú Parametrize…, lo cual es un atajo.


Figura 3: Atajo Parametrizado

Pero antes de usar atajos, es mejor aprender las áreas usadas por SSIS para completar esta parametrización. La primera área nueva es Parámetros de Proyecto (Project Parameters) en el Explorador de Solución en el proyecto. Los Parámetros de Proyecto son globales para todos los Paquetes en un solo Proyecto SSIS. Así que, si usted usa el parámetro en más de un paquete en el proyecto, y el valor es cambiado antes de ejecutar, entonces todos los paquetes verán y usarán el nuevo valor.


Figura 4: Parámetros de Proyecto

Habrán 2 nuevos parámetros: ServerName y DatabaseName. Los parámetros de proyecto ServerName y DatabaseName nos permitirán desplegar este paquete a diferentes instancias SSIS (QA o Producción) y cambiar el parámetro cuando se esté ejecutando. Los valores usados cuando se está desarrollando y probando este paquete serán diferentes que cuando se desplegó a producción.

Para crear Parámetros de Proyecto, sólo haga doble clic en el archivo Project.param en el explorador de soluciones. Habrá un botón en la barra de herramientas disponible para crear nuevos parámetros.


Figura 5: Añadir un nuevo parámetro

Coloque el nombre del parámetro en la columna name (nombre). El Tipo de Dato (Data Type) en este caso es cadena (string). El valor es usado para el valor inicial. Column Required (Columna Requerida) es usada para forzar un valor en el parámetro antes de ejecutar. Un error es retornado cuando el parámetro Required (Requerido) no tiene valor.


Figura 6: Nuevos Parámetros de Proyecto

Para cambiar la cadena de conexión para usar parámetros de proyecto, seleccione la conexión en el paquete Connection Managers (Administradores de Conexión) y vaya a la ventana de propiedades. Si la ventana de propiedades no es visible ya, haga clic derecho en la conexión y seleccione Properties. Es conveniente tener las propiedades estacionadas a la derecha y debajo del explorador de soluciones.


Figura 7: Propiedad Expression

Haga clic en la elipse a la derecha de la propiedad Expressions y aparecerá la ventana Property Expressions Editor.


Figura 8: Editor de la propiedad Expression

Una de las propiedades disponibles es ConnectionString, pero esto le hace editar toda la cadena en lugar de sólo partes de la cadena. La propiedad ServerName para el nuevo Parámetro de Proyecto es obvia, pero la propiedad DatabaseName no lo es a menos que a usted le sea familiar trabajar con cadenas de conexión de bases de datos SQL Server. La propiedad usada para cambiar la base de datos es InitialCatalog. Esta propiedad puede ser rastreada hasta los días del controlador OBDC original, los cuales, por cierto, están volviendo.


Figura 9: Propiedades de la Cadena de Conexión

Cuando InitialDialog es seleccionado, el siguiente paso es asociar el Parámetro de Proyecto DatabaseName con esta propiedad Expression. Esto es hecho haciendo clic en la elipse debajo de la columna Expression de la Propiedad.


Figura 10: Cambiar Propiedad

La Figura 11 muestra la ventana Expression Builder (Constructor de Expresiones). Esta ventana permite arrastrar y soltar Parámetros de Proyecto a la caja de texto Expression. Una vez arrastrados y soltados, los Parámetros de Proyecto tendrán un símbolo @ como prefijo en el nombre del parámetro. Hay un botón llamado Evaluate Expression para mostrar los resultados de la expresión. La expresión puede contener otras variables, expresiones o texto codificado como parte del valor. El botón es útil para asegurarse de que la expresión creada es correcta y válida.


Figura 11: Ventana Expression Builder

Repita estos pasos para la propiedad ServerName. El Proyecto y los Paquetes están listos para ser desplegados.


Figura 12: Expresiones Completadas

El proyecto puede ser desplegado a la instancia SSIS haciendo clic derecho en el proyecto y seleccionando Deploy del submenú. El asistente le pedirá una instancia SSIS para desplegar el proyecto. Habrá un área de selección diferente para la carpeta en el Catálogo SSIS.



Figura 13: Desplegar Proyecto y Paquetes

La Figura 14 muestra el paquete configurado en SQL Server Agent como un paso en el trabajo. La pestaña de configuración de este Paso de Trabajo puede ser usada para cambiar los valores del Parámetro de Proyecto.


Figura 14: Paso de Trabajo de SQL Server Agent

La Figura 15 muestra las áreas para cambiar estos valores para los Parámetros del Proyecto. El primero es el Parámetro en sí mismo. El segundo es un Ambiente (Environment) que está asociado con el Proyecto. Si el valor necesita cambiar para múltiples paquetes en el proyecto, use el Ambiente. Los Ambientes ayudan con la administración del cambio para múltiples paquetes en un proyecto desplegado.


Figura 15: Paso de Trabajo de SQL Server Agent

Puede parecer que hay muchos pasos a cumplir para obtener el resultado deseado. Pero una vez que esto está configurado, la configuración puede ser cambiada en el Ambiente del proyecto una vez que esté desplegado al Catálogo SSIS. Más acerca del Catálogo SSIS de Ambientes será cubierto en otro artículo.

Barra lateral:

El Catálogo SSIS puede ser creado en una nueva instalación de SQL Server 2012, 2014 o 2016. En SQL Server Management Studio (SSMS), el explorador de objetos mostrará una carpeta llamada Integration Services Catalog. Si usted hace clic derecho en esta carpeta, un submenú Create Catalog… estará disponible para crear la base de datos SSIS en esta instancia. La Figura 16 muestra la selección del menú deshabilitada porque el Catálogo ya ha sido creado.


Figura 16: Catálogo de Servicios de Integración

Referencias

Thomas LeBlanc
Paquetes SSIS

Acerca de Thomas LeBlanc

Thomas LeBlanc es un Arquitecto de Data Warehouse en Baton Rouge, Los Angeles. Actualmente trabaja en el diseño de modelos dimensionales en el área financiera utilizando Integración (SSIS) y Analysis Services (SSAS) para el desarrollo y SSRS junto con Power BI para la generación de informes. Comenzó como desarrollador en COBOL en la Universidad del estado de Luisiana (LSU), él ha sido un desarrollador, un encargado de pruebas de software, un administrador proyectos, un líder de equipo así como un instructor del de documentación de software. Su participación en la comunidad de SQL Server incluye las actividades de hablar en SQLPASS.org Summits y SQLSaturday desde 2011 y ha sido ponente en IT/Dev Connections y Live! 360. Actualmente, es el presidente del Virtual Chapter de Inteligencia de Negocios Excel de PASS y trabajó en el Comité de Nominación para la Junta de Directores de PASS para 2016. Ver todos los mensajes de Thomas LeBlanc

168 Views