Compartir a través de


Especificar un intervalo de datos modificados

En el flujo de control de un paquete de Integration Services que realice una carga incremental de datos modificados, la primera tarea consiste en calcular los extremos del intervalo de cambios. Estos extremos son valores datetime y se almacenarán en variables de paquete para su uso posterior en el paquete.

[!NOTA]

Para obtener una descripción del proceso general de diseño del flujo de control, vea Mejorar las cargas incrementales con la captura de datos modificados.

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.

Configurar variables de paquete para los extremos

Antes de configurar la tarea Ejecutar SQL para calcular los extremos, se deben definir las variables de paquete que almacenarán dichos extremos.

Para establecer las variables de paquete

  1. En Business Intelligence Development Studio, abra un nuevo proyecto de Integration Services.

  2. En la ventana Variables, cree las variables siguientes:

    1. Cree una variable con el tipo de datos datetime para almacenar el punto inicial del intervalo.

      En este ejemplo se utiliza el nombre de variable ExtractStartTime.

    2. Cree otra variable con el tipo de datos datetime para almacenar el punto final del intervalo.

      En este ejemplo se utiliza el nombre de variable ExtractEndTime.

Si calcula los extremos en un paquete primario que ejecuta varios paquetes secundarios, puede utilizar las configuraciones de variables de paquete primario para pasar los valores de estas variables a cada paquete secundario. Para obtener más información, vea Tarea Ejecutar paquete y Cómo usar los valores de variables primarias en un paquete secundario.

Calcular un punto inicial y un punto final para los datos modificados

Después de establecer las variables de paquete para los extremos del intervalo, puede calcular los valores reales para dichos extremos y asignarlos a las variables de paquete correspondientes. Dado que esos extremos son valores datetime, deberá usar funciones que puedan calcular o utilizar valores datetime. Tanto el lenguaje de expresiones de Integration Services como Transact-SQL tienen funciones que operan con valores datetime:

Antes de utilizar cualquiera de estas funciones de datetime para calcular los extremos, deberá determinar si el intervalo es fijo y se produce con regularidad. Por lo general, se prefiere aplicar regularmente en las tablas de destino los cambios que se han producido en las tablas de origen. Por ejemplo, puede aplicar esos cambios cada hora, diariamente o incluso semanalmente.

Una vez que decida si su intervalo de cambios es fijo o aleatorio, podrá calcular los extremos:

  • Calcular la fecha y hora de inicio. Utilice la fecha y hora de finalización de la carga anterior como los valores actuales. Si utiliza un intervalo fijo para las cargas incrementales, puede calcular este valor mediante las funciones de datetime de Transact-SQL o del lenguaje de expresiones de Integration Services. De lo contrario, es posible que tenga que conservar los extremos entre las ejecuciones y utilizar una tarea Ejecutar SQL o una tarea Script para cargar el extremo anterior.

  • Calcular la fecha y hora de finalización. Si utiliza un intervalo fijo para las cargas incrementales, calcule la fecha y hora de finalización actuales como un desplazamiento de la fecha y hora de inicio. De nuevo, puede calcular este valor mediante las funciones de datetime de Transact-SQL o del lenguaje de expresiones de Integration Services.

En el procedimiento siguiente, el intervalo de cambios utiliza un intervalo fijo y da por supuesto que el paquete de la carga incremental se ejecuta diariamente sin excepciones. De lo contrario, se perderían los datos modificados para los intervalos que faltan. El punto inicial del intervalo es la medianoche de anteayer, es decir, hace unas 24 a 48 horas. El punto final del intervalo es la medianoche de ayer, es decir, la noche anterior, hace unas 0 a 24 horas.

Para calcular el punto inicial y el punto final del intervalo de captura

  1. En la ficha Flujo de control del Diseñador SSIS, agregue una tarea Ejecutar SQL al paquete.

  2. Abra el Editor de la tarea Ejecutar SQL y en la página General del editor, seleccione las opciones siguientes:

    1. En Conjunto de resultados, seleccione Fila única.

    2. Configure una conexión válida con una base de datos de origen.

    3. En SQLSourceType, seleccione Entrada directa.

    4. En SQLStatement, escriba la instrucción SQL siguiente:

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
      
  3. En la página Conjunto de resultados del Editor de la tarea Ejecutar SQL, asigne el resultado de ExtractStartTime a la variable de paquete ExtractStartTime y el resultado de ExtractEndTime a la variable de paquete ExtractEndTime.

    [!NOTA]

    Al utilizar una expresión para establecer el valor de una variable de Integration Services, dicha expresión se evalúa cada vez que se tiene acceso al valor de la variable.

Paso siguiente

Una vez calculados los puntos inicial y final de un intervalo de cambios, el paso siguiente consiste en determinar si están listos los datos modificados.

Tema siguiente:Determinar si los datos modificados están preparados

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las descargas, los artículos, los ejemplos y los vídeos más recientes de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.