¿Cómo fusiono los files del package SSIS?

Me pregunto si alguien tiene algún consejo sobre la fusión de los files dtsx de SSIS. Aquí están los problemas que veo que dificultan la fusión:

  • Son xml, que ya puede ser un dolor para la fusión.
  • Pueden tener scripts embeddeds de C #, en cuyo caso tendrán tanto el código fuente C # como la cadena codificada en base64 del file dll.
  • Describen el flujo de datos en el package, así como el layout de los elementos en el IDE.

Si alguien de Microsoft está escuchando, muchos de esos problemas se resuelven haciendo que los packages sean varios en vez de un solo file. Un dtsx podría ser un xml que describa el flujo, un xml que describa el layout, algunos files fuente .cs y algunos dlls. Pero no es así. Me hace preguntarme por qué alguien usa dtsx.

Una no solución

La única solución que he visto en línea es garantizar que el file dtsx esté bloqueado al editar, por lo que solo un usuario tendrá cambios. Esto funciona bien cuando solo estás hablando de una twig, pero si trabajas con varias copys de dtsx en varias twigs (o Dios no lo quiera, DVCS ), entonces no hay una forma factible de bloquearlas todas en cualquier momento que realices un cambio. Además, eso no resolvería realmente el problema a less que también pudieras asegurarte de que nadie más lo haya cambiado antes de poder fusionarlo en todas partes.

Utilizar el complemento gratuito de Visual Studio BIDS Helper puede ayudarlo con su dilema de dos maneras posibles.

  1. BIML : BIML es lenguaje de marcado de inteligencia empresarial ( reference BIML ). Puede usar files .biml para generar sus packages de SSIS. Los files BIML deberían funcionar mejor con las operaciones de combinación debido a su estructura más rígida. Aunque aún no tengo experiencia en fusionarlos, he estado usando files BIML para crear mis packages SSIS más rápido de lo que permite la interfaz de usuario de SSIS. Ha sido muy útil copyr y pegar flujos de datos similares y cambiar solo los attributes únicos.

  2. Smart Diff : BIDS Helper también tiene una característica Smart Diff incorporada para ayudar a comparar las diferencias en sus packages de SSIS. No ayudará a la fusión automática, pero eliminará la información de layout y orderará el XML antes de mostrar las diferencias. Esto le mostrará las diferencias funcionales reales entre dos packages de SSIS. Luego puede usar esa información para combinar manualmente los cambios. Para su ejemplo de su comentario en la respuesta del revelador, usaría Smart Diff para comparar la versión 1.0 de su SSIS con su versión fija en la twig 1.0, luego vería solo los cambios necesarios para aplicar esa corrección manualmente a su twig 2.0.

Recomiendo evitar la fusión de files dtsx a toda costa: ¡va a ser un mundo de dolor! La forma en que generalmente desarrollo los proyectos de SSIS es dividir cada pieza distinta de trabajo en un package separado / file dtsx, y luego llamarlos desde un package maestro. Esto significa que diferentes personas en el equipo pueden trabajar en diferentes packages sin superponerse en el trabajo de los demás. Esto funciona muy bien en un sistema controlado por fuente. Otra ventaja es que cada componente se puede ejecutar o probar independientemente.

La única forma de fusionarnos para trabajar es abrir ambos packages, copyr todo de un package, pegarlo en el otro y luego comstackr cada tarea de script si tienen conflictos.

Sin embargo, es recomendable trabajar con packages más pequeños, ya que simplemente responden más rápido.

Si necesita capacidades reales de fusión, deberá codificar manualmente los packages. Debido a todo el cableado (identificadores de linaje, etc.) y las especificaciones del diseñador en el XML, no hay forma de fusionar los cambios entre los files sin romper los flujos de datos o el layout.

Eche un vistazo a los transformadores BIML. BIML (Business Intelligence Markup Language) es una forma mucho más fácil de editar y controlar sus packages de SSIS. Solo descarga el ayudante de BIDS y echa un vistazo a este artículo.

http://bimlscript.com/Walkthrough/Details/68

Los transformadores también le permiten aplicar el mismo cambio a un set de packages de SSIS, no solo manualmente, de a uno por vez.

Aclamaciones