La Tarea Execute Package ejecuta otro paquete (conocido como el hijo)
del paquete actual (conocido como el padre). Este enfoque de padres e hijos es
fundamental:
·
Cuando
el proyecto necesita ser desarrollado por más de una persona (es más fácil
cuando se delegan tareas a cada miembro del equipo).
·
Mientras
rompe flujos de trabajo de paquete complejos (también reutiliza partes de
paquetes).
·
Para
tener un proyecto más organizado, reduciendo el riesgo de fallas y su impacto
cuando un subconjunto pequeño o específico del proyecto debe ser actualizado o
refinado.
No es recomendable tratar de hacer todo su trabajo dentro de un paquete;
el proyecto debería ser dividido en varios componentes que pueden trabajar
juntos y ser llamados por un paquete padre.
Este ejercicio demuestra la lógica inherente a un proyecto de Extracción,
Transformación y Carga (ETL). ETL es un proyecto que, por naturaleza, es dividido
en tres etapas: la primera etapa es responsable de extraer los datos de orígenes,
la segunda etapa es responsable de la aplicación de varias transformaciones,
como la calidad de datos y las reglas del negocios, y la última etapa es responsable
de cargar los datos de origen transformados al destino.
Alistarse
Seguiremos estos pasos para alistarnos:
1. Abrir el SQL Server Data Tools
(SSDT) y crear un nuevo proyecto SSIS.
2. Proporcione un nombre y una
ubicación para el proyecto SSIS y proceda.
3. Seleccione el paquete creado por
defecto y renómbrelo a Master.dtsx.
Ejercicio
Considere un escenario donde SSIS necesita ejecutar periódicamente un
proceso ETL. Debido a que el enfoque más común y eficaz es el de dividir el
proceso en varias etapas, este ejercicio tendrá un paquete padre llamado Master y tres nuevos paquetes Child, uno por cada etapa de ETL.
Por lo tanto, es necesario añadir tres Tareas Execute Package al Control Flow, uno por cada etapa descrita antes.
Aun sabiendo que podríamos tener más paquetes para cada etapa, no es la
intención el crear una mayor complejidad.
1. Agregue tres nuevos paquetes al
proyecto SSIS creado para este ejercicio. En el Solution Explorer, bajo la SSIS
Packages, seleccione New SSIS Package.
Repita este paso dos veces y renombre cada paquete a: Child_Extraccion.dtsx, Child_Transformacion.dtsx y Child_Carga.dtsx.
3. Renombre la tarea script a Mensaje PackageName y ábralo para su edición.
Seleccione en ScriptLanguage Microsoft Visual Basic
2012 de la pestaña Script.
4. En la pestaña Script, seleccione la variable de sistema System::PackageName del cuadro desplegable de la
propiedad ReadOnlyVariable. Esta
variable es utilizada dentro del Editor Script para mostrar un mensaje con su
valor respectivo.
5. Pulse el botón Edit Script... y añada la siguiente línea al procedimiento Main():
7. En el paquete maestro, arrastrar y
soltar tres instancias de Tareas Execute
Package, uno por cada paquete hijo, de la Toolbox SSIS al diseñador Control Flow; ellos serán llamados desde
aquí.
8. Seleccionar y editar la primera Tarea Execute Package. En la ficha Package, seleccione la propiedad PackageNameFromProjectReference y elegir
el paquete hijo que será llamado desde esta tarea. Repita este paso para los
dos paquetes hijos restantes.
9. Ejecutar el paquete pulsando F5 o mediante el menú Debug | Start Debugging. Durante la
ejecución, los diversos paquetes serán llamados en la secuencia indicada en el
maestro, y se mostrará un mensaje con el nombre del paquete.
El aspecto final del paquete maestro Master.dtsx se supone que es similar a la
siguiente captura de pantalla:
Funcionamiento
Los pasos anteriores explican un escenario simple y básico para el
enfoque de Padres e Hijos. Naturalmente, más requerimientos pueden surgir en
situaciones del mundo real, y por esa razón algunos detalles de configuración necesitan
ser destacados aquí.
Ø
Referencia de proyecto versus
referencia externa
En esta nueva versión, la Tarea Execute Package tiene una nueva y
útil propiedad llamada ReferenceType.
Hay dos tipos asociados con esta propiedad: External Reference y Proyect
Reference. Cuando el External
Reference es seleccionado, la tarea será conmutada al estilo de una versión
2008R2 previa de SSIS, de trabajar con SQL Server y ubicaciones de paquete File
System disponibles. Cuando el Project
Reference es seleccionado, es permitido elegir otro paquete del proyecto
actual. Este último tipo es una nueva característica que utiliza el escenario del
modelo de despliegue de proyecto.
Hay dos posibilidades para ejecutar el
llamado paquete hijo: fuera del proceso o en el proceso. Esta funcionalidad
puede ser cambiada con la propiedad ExecuteOutOfProcess,
que es utilizado para especificar si el paquete hijo se ejecuta en el proceso
del paquete padre o en un proceso separado.
A menudo es necesario pasar algunos datos entre los paquetes padres e
hijos. Un ejemplo podría ser el "reporte RunID" del proceso completo que
paquetes hijos deben conocer para realizar una tarea de integración específica.
Si se utiliza el modo de despliegue de proyecto, es posible crear parámetros
para compartir información importante entre los paquetes.
1. Crear una variable en el paquete padre
(en este ejercicio el paquete maestro es Master.dtsx):
La forma más fácil de probar si el valor de la variable está pasando entre padres e hijos es crear una tarea script.
1 comentarios:
Presento la tarea Execute Package, muy útil para dividir un proyecto en partes mas trabajables. Espero les sirva.
Publicar un comentario