sql-server - procedimiento - ejecutar ssis desde stored procedure
SSIS, dtsx y paquetes de implementación (3)
Solo intento comprender mejor los paquetes de SSIS y cómo se implementan. Corrígeme que estoy equivocado, pero para cualquier implementación, creo que debe haber al menos dos archivos, un .SSISDeploymentManifest y un .dtsx. El .SSISDeploymentManifest actúa como el paquete de instalación de Windows equivalente que apunta al .dtsx. El dtsx es el paquete real de "cosas" al que se hace referencia como un archivo externo de alguna forma cuando ejecuta el instalador. Cuando lo instala, el paquete se agrega a una lista de paquetes sis para esa instancia.
Mis preguntas adicionales:
- Si quisiera mantener la versión anterior del mismo paquete, ¿puedo simplemente copiar los directorios bin con los dos archivos anteriores y guardarlos por separado si necesito volver a un paquete anterior?
- ¿Dónde se instalan estos paquetes? ¿Cómo sabe SSIS dónde están los paquetes?
Corrígeme que estoy equivocado, pero para cualquier implementación, creo que debe haber al menos dos archivos, un .SSISDeploymentManifest y un .dtsx. El .SSISDeploymentManifest actúa como el paquete de instalación de Windows equivalente que apunta al .dtsx. El dtsx es el paquete real de "cosas" al que se hace referencia como un archivo externo de alguna forma cuando ejecuta el instalador. Cuando lo instala, el paquete se agrega a una lista de paquetes sis para esa instancia.
Tus suposiciones son en su mayoría correctas. No necesita el manifiesto de implementación, pero puede ser útil. Además, no necesita implementar en la instancia de SQL Server. También tiene la opción de implementar en el sistema de archivos. Explicaré ambos a continuación.
En cuanto a tu primera pregunta:
Control de versiones:
Asegúrese de desarrollar y verificar sus paquetes dtsx a través de Visual Studio. Etiquete sus lanzamientos en sourcesafe o en cualquier control de versión que esté usando. Si está registrando y etiquetando, entonces debería ser capaz de retroceder fácilmente a una versión anterior. Como mencionas, también puedes guardar una copia de tu antiguo directorio bin pero, naturalmente, ponerlos en subcarpetas con fecha o algo así. Sin embargo, esto no reemplaza el control de versión adecuado.
En cuanto a tu segunda pregunta:
Despliegue:
Como dice el otro cartel, primero debe tomar una decisión:
a) Implementar paquetes en el sistema de archivos b) Implementar paquetes en MSDB
Hay beneficios para cada uno, y todos tienen su preferencia. He usado ambos, pero prefiero el sistema de archivos porque es más transparente, sin embargo, hay más para mantener.
Consulte esta publicación para obtener más información al respecto: http://blogs.conchango.com/jamiethomson/archive/2006/01/05/SSIS_3A00_-Common-folder-structure.aspx
El código está en el paquete dtsx. En general, para hacer que sus paquetes sean portátiles, también abstrae sus cadenas de conexión y otra información configurable en un archivo de configuración (.dtsconfig) o variable de entorno (no se necesita ningún archivo). Consulte BOL para obtener más información sobre la configuración.
El archivo de manifiesto contiene metadatos sobre qué dtsx y archivos de configuración instalar. Si abres uno, verás que es un simple archivo xml legible.
El archivo de manifiesto facilita la entrega a un DBA para implementar (pídales que hagan doble clic en el archivo de manifiesto y sigan las instrucciones, pero necesitarán instrucciones.
Para mí, el archivo de manifiesto es más útil para implementar en SQL Server que en el sistema de archivos. En realidad, todo lo que hace es hacer una copia de los archivos dtsx y config y ponerlos donde usted lo diga. También podría instruir fácilmente al DBA para que copie sus archivos dtsx a una carpeta común en el servidor y los archivos de configuración a otra carpeta en el mismo servidor.
Luego, cuando programe sus trabajos utilizando el Agente SQL, debe especificar que va a ejecutar un paquete SSIS que está almacenado en el sistema de archivos y buscar dónde está ubicado. Si está utilizando configuraciones, hay una pestaña para especificar dónde se encuentra el archivo de configuración.
Hay tanto por saber sobre la configuración / implementación / control de versiones de paquetes SSIS. Pero espero que esto te ayude a comenzar en el camino correcto.
Cuando exporta sus paquetes DTS utilizando el Asistente de importación / exportación en SQL Server, tiene la opción de guardarlos en SQL Server o localmente en el sistema de archivos.
En cuanto a las versiones de sus paquetes de SSIS, necesita consultar SSISDB para extraer los números de versión. Es molesto que este tipo de información no se muestre directamente en Management Studio, pero, hasta que lo haga, alguien puede encontrarlo útil:
SELECT prj.[name] as Project
,pkg.[name] as Package
,pkg.[version_major]
,pkg.[version_minor]
,pkg.[version_build]
FROM [SSISDB].[internal].[packages] as pkg
JOIN [SSISDB].[internal].[projects] as prj
ON pkg.[project_id] = prj.[project_id]
ORDER BY prj.[name]