SSIS - SQL Server Integration Services - Crear tarea contenedo ForLoop SSIS que permita cambiar automáticamente ruta de carpeta de archivos

 
Vista:

Crear tarea contenedo ForLoop SSIS que permita cambiar automáticamente ruta de carpeta de archivos

Publicado por Yanett Giraldo (1 intervención) el 23/07/2021 20:29:24
Cordial saludo:

Tengo un paquete dentro de un proyecto SSIS en Visual Studio 2019. Requiero crear una tarea que permita cambiar automáticamente la ruta de una carpeta de archivos por cada iteración del ciclo. Por ejemplo:

Necesito cargar, a través de ETL de Visual Studio, los meses de enero, febrero, marzo y abril de 2019 a una base de datos Stage. Si yo lanzo el proceso por los 4 meses, ello se tarda unas 57 horas aprox.

Si yo lo lanzo mes por mes, se tarda 1 hora y 15 minuntos aprox.

Mi proyecto tiene parámetros de proyecto, contenedores For Each, de secuencia y For Loop. Los contenedores For Each ejecutan traverse subfolders.

Yo he pensado hacerlo mes a mes de forma que, el proceso ejecute hasta la base de datos Stage y luego vuelva a empezar con el siguiente mes.

No sé si la idea se pueda llevar a cabo y me pueden ayudar a resolverla o si por el contrario, alguna/o de ustedes por acá tiene una mejor idea que me pueda permitir resolver el problema que ya me tiene con un stopper en el trabajo bastante amplio.

Agradezco mucho su atención y ayuda.

Yanett Giraldo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Optimización de carga por mes con cambio dinámico de ruta

Publicado por Alejandro (60 intervenciones) el 27/02/2024 00:38:50
Hola Yanett.

Para optimizar la carga por mes en tu paquete SSIS con un cambio dinámico de la ruta de la carpeta, puedes considerar el siguiente enfoque:

1. Utilizar una variable para la ruta:
- Define una variable en tu paquete (por ejemplo, `RutaArchivos`) que almacene la ruta de la carpeta.

2. Utilizar un contenedor de bucle (for loop):
- Configura un contenedor de bucle (for loop) que recorra los meses deseados (enero, febrero, marzo, abril).

3. Cambiar dinámicamente la ruta en cada iteración:
- En el bucle, utiliza una tarea de script o una tarea de expresión para modificar dinámicamente el valor de la variable `RutaArchivos` en cada iteración, apuntándola a la carpeta correspondiente al mes actual.

4. Configurar la tarea de datos (Data Flow) con la variable:
- Configura la tarea de datos (Data Flow) para que utilice la variable `RutaArchivos` como la ruta de la carpeta en la cual buscar archivos.

5. Implementar el flujo de control:
- Configura el flujo de control para que, después de procesar los archivos de un mes, regrese al contenedor de bucle para la siguiente iteración.

6. Parámetros dinámicos:
- Si es necesario, puedes utilizar parámetros en las consultas SQL o en las configuraciones de origen/destino para adaptar dinámicamente el proceso a cada mes.

Este enfoque te permitirá dividir la carga por mes y cambiar dinámicamente la ruta de la carpeta en cada iteración del bucle, optimizando el tiempo de ejecución. Asegúrate de ajustar el diseño específico según la estructura de tu paquete y las necesidades de tu carga de datos.

Espero que esta sugerencia sea de ayuda. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar