Realizar una carga incremental de varias tablas
En el tema Mejorar las cargas incrementales con la captura de datos modificados, el diagrama muestra un paquete básico que realiza una carga incremental en una sola tabla. Sin embargo, cargar una tabla no es una acción tan común como realizar una carga incremental de varias tablas.
Cuando se realiza una carga incremental de varias tablas, algunos pasos se tienen que realizar una vez para todas las tablas y otros se tienen que repetir para cada tabla de origen. Tiene varias opciones para implementar estos pasos en Integration Services:
Utilizar un paquete primario y varios paquetes secundarios.
Utilizar varias tareas Flujo de datos en un único paquete.
Nota
Para ver ejemplos completos de principio a fin que muestran el uso de la captura de datos modificados en paquetes, vea los ejemplos de Integration Services en Codeplex.
Cargar varias tablas mediante un paquete primario y varios paquetes secundarios
Puede usar un paquete primario para realizar aquellos pasos que solo deben seguirse una vez. Los paquetes secundarios realizarán los pasos que se deben efectuar para cada tabla de origen.
Para crear un paquete primario que realice los pasos que solo se deben efectuar una vez
Cree un paquete primario.
En el flujo de control, utilice una tarea Ejecutar SQL o expresiones de Integration Services para calcular los extremos.
Para obtener un ejemplo de cómo calcular extremos, vea Especificar un intervalo de datos modificados.
Si es necesario, utilice un contenedor de bucles For para retrasar la ejecución hasta que los datos modificados para el período seleccionado estén listos.
Para obtener un ejemplo de este tipo de contenedor de bucles For, vea Determinar si los datos modificados están preparados.
Utilice varias tareas Ejecutar paquete para ejecutar los paquetes secundarios para cada tabla que se va a cargar. Pase los extremos calculados en el paquete primario a cada paquete secundario mediante configuraciones de variable de paquete primario.
Para obtener más información, vea Tarea Ejecutar paquete y Cómo usar los valores de variables primarias en un paquete secundario.
Para crear paquetes secundarios que realicen los pasos que se deben efectuar para cada tabla de origen
Cree un paquete secundario para cada tabla de origen.
En el flujo de control, utilice una tarea Script o una tarea Ejecutar SQL para ensamblar la instrucción SQL que se usará para consultar los cambios.
Para obtener un ejemplo de cómo ensamblar la consulta, vea Preparación para consultar datos modificados.
Utilice una única tarea Flujo de datos en cada paquete secundario para cargar los datos modificados y aplicarlos al destino. Configure el flujo de datos como se describe en los pasos siguientes:
En el flujo de datos, utilice un componente de origen para consultar en las tablas de cambios los cambios comprendidos entre los extremos seleccionados.
Para obtener un ejemplo cómo consultar las tablas de cambios, vea Recuperar y describir datos de cambios.
Use la transformación División condicional para dirigir las inserciones, las actualizaciones y las eliminaciones a salidas diferentes para procesarlas apropiadamente.
Para obtener un ejemplo de cómo configurar esta transformación con objeto de dirigir la salida, vea Procesar inserciones, actualizaciones y eliminaciones.
Use un componente de destino para aplicar las inserciones al destino. Use transformaciones Comando de OLE DB con instrucciones UPDATE y DELETE con parámetros para aplicar las actualizaciones y las eliminaciones al destino.
Para obtener un ejemplo de cómo usar esta transformación con el fin de aplicar actualizaciones y eliminaciones, vea Aplicar los cambios al destino.
Cargar varias tablas mediante varias tareas Flujo de datos en un único paquete
También puede utilizar un único paquete que contenga una tarea Flujo de datos independiente para cada tabla de origen que se va a cargar.
Para cargar varias tablas mediante varias tareas Flujo de datos en un único paquete
Cree un único paquete.
En el flujo de control, utilice una tarea Ejecutar SQL o expresiones de Integration Services para calcular los extremos.
Para obtener un ejemplo de cómo calcular extremos, vea Especificar un intervalo de datos modificados.
Si es necesario, utilice un contenedor de bucles For para retrasar la ejecución hasta que estén listos los datos modificados para el intervalo seleccionado.
Para obtener un ejemplo de este tipo de contenedor de bucles For, vea Determinar si los datos modificados están preparados.
Use una tarea Script o Ejecutar SQL para ensamblar la instrucción SQL que se usará para consultar si hay cambios.
Para obtener un ejemplo de cómo ensamblar la consulta, vea Preparación para consultar datos modificados.
Utilice varias tareas Flujo de datos para cargar los datos modificados de cada tabla de origen y aplicarlos al destino. Configure cada tarea Flujo de datos tal y como se describe en los pasos siguientes.
En cada flujo de datos, utilice un componente de origen para consultar en las tablas de cambios los cambios comprendidos entre los extremos seleccionados.
Para obtener un ejemplo cómo consultar las tablas de cambios, vea Recuperar y describir datos de cambios.
Use la transformación División condicional para dirigir las inserciones, las actualizaciones y las eliminaciones a salidas diferentes para procesarlas apropiadamente.
Para obtener un ejemplo de cómo configurar esta transformación con objeto de dirigir la salida, vea Procesar inserciones, actualizaciones y eliminaciones.
Use un componente de destino para aplicar las inserciones al destino. Use transformaciones Comando de OLE DB con instrucciones UPDATE y DELETE con parámetros para aplicar las actualizaciones y las eliminaciones al destino.
Para obtener un ejemplo de cómo usar esta transformación con el fin de aplicar actualizaciones y eliminaciones, vea Aplicar los cambios al destino.
|