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 extremo a extremo que muestren el uso de la captura de datos modificados en paquetes, vea el ejemplo Captura de datos modificados para el paquete de intervalo especificado y el ejemplo Captura de datos modificados desde el paquete de la última solicitud en Codeplex.
Cargar varias tablas mediante un paquete primario y varios paquetes secundarios
Puede usar un paquete primario para realizar aquellos pasos que sólo 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 sólo 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 sobre 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 sobre 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 en el 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 Recuperación y descripción de 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 sobre 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 en el destino. Use transformaciones Comando de OLE DB con instrucciones UPDATE y DELETE con parámetros para aplicar las actualizaciones y las eliminaciones en el destino.
Para obtener un ejemplo sobre cómo usar esta transformación con el fin de aplicar actualizaciones y eliminaciones, vea Aplicar los cambios en el 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 sobre 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 sobre 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 en el 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 Recuperación y descripción de 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 sobre 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 en el destino. Use transformaciones Comando de OLE DB con instrucciones UPDATE y DELETE con parámetros para aplicar las actualizaciones y las eliminaciones en el destino.
Para obtener un ejemplo sobre cómo usar esta transformación con el fin de aplicar actualizaciones y eliminaciones, vea Aplicar los cambios en el destino.
|