Partager via


Spécification d'un intervalle de données modifiées

Dans le flux de contrôle d'un package Integration Services qui effectue un chargement incrémentiel des données modifiées, la première tâche consiste à calculer les points de terminaison de l'intervalle de modification. Ces points de terminaison sont des valeurs datetime qui seront stockées dans des variables de package pour une utilisation ultérieure dans le package.

Notes

Pour obtenir une description du processus d'ensemble de la conception du flux de contrôle, consultez Amélioration des chargements incrémentiels avec la capture de données modifiées.

Pour consulter des exemples de bout en bout complets qui présentent l'utilisation de la capture de données modifiées dans des packages, consultez les Integration Services exemples sur le site Codeplex.

Configurer des variables de package pour les points de terminaison

Avant de configurer la tâche d'exécution SQL pour calculer les points de terminaison, vous devez définir les variables de package qui stockeront les points de terminaison.

Pour configurer des variables de package

  1. Dans Business Intelligence Development Studio, ouvrez un nouveau projet Integration Services.

  2. Dans la fenêtre Variables, créez les variables suivantes :

    1. Créez une variable du type de données datetime pour contenir le point de départ de l'intervalle.

      Cet exemple utilise le nom de variable ExtractStartTime.

    2. Créez une autre variable du type de données datetime pour contenir le point de fin pour l'intervalle.

      Cet exemple utilise le nom de variable ExtractEndTime.

Si vous calculez les points de terminaison dans un package principal qui exécute plusieurs packages enfants, vous pouvez utiliser des configurations Variable de package parent pour passer les valeurs de ces variables à chaque package enfant. Pour plus d'informations, consultez Tâche d'exécution de package et Procédure : utiliser les valeurs de variables parents dans un package enfant.

Calculer un point de départ et un point de fin pour les données modifiées

Après avoir configuré les variables de package pour les points de terminaison d'intervalle, vous pouvez calculer les valeurs réelles pour ces points de terminaison et mapper ces valeurs aux variables de package correspondantes. Ces points de terminaison étant des valeurs datetime, vous devez utiliser des fonctions capables de calculer ou d'exploiter des valeurs datetime. Le langage d'expression Integration Services et Transact-SQL possèdent des fonctions qui prennent en charge les valeurs datetime :

Avant d'utiliser l'une de ces fonctions datetime pour calculer les points de terminaison, vous devez déterminer si l'intervalle est fixe et s'il a lieu selon une planification régulière. En général, vous appliquez les modifications qui se sont produites dans les tables sources aux tables de destination selon une planification régulière. Par exemple, vous pouvez appliquer ces modifications toutes les heures, tous les jours ou toutes les semaines.

Après avoir déterminé si votre intervalle de modification est fixe ou plus aléatoire, vous pouvez calculer les points de terminaison :

  • Calcul de la date et de l'heure de début. Vous utilisez la date et l'heure de fin du chargement précédent comme date et heure de début actuelles. Si vous utilisez un intervalle fixe pour les chargements incrémentiels, vous pouvez calculer cette valeur en utilisant les fonctions datetime de Transact-SQL ou du langage d'expression Integration Services. Autrement, vous devrez peut-être rendre les points de terminaison persistants entre les exécutions et utilisez une tâche d'exécution SQL ou une tâche de script pour charger le point de terminaison précédent.

  • Calcul de la date et de l'heure de fin. Si vous utilisez un intervalle fixe pour les chargements incrémentiels, calculez la date et l'heure de fin actuelles sur la base d'un décalage par rapport à la date et à l'heure de début. Là encore, vous pouvez calculer cette valeur en recourant aux fonctions datetime de Transact-SQL ou du langage d'expression Integration Services.

Dans la procédure suivante, l'intervalle de modification utilise un intervalle fixe et suppose que le package de chargement incrémentiel est exécuté tous les jours sans exception. Sinon, les données modifiées pour les intervalles ratés seraient perdues. Le point de départ pour l'intervalle est avant-hier à minuit, soit une période écoulée comprise entre 24 à 48 heures. Le point de fin pour l'intervalle est hier à minuit (la nuit précédente), soit une période écoulée comprise entre 0 et 24 heures.

Pour calculer le point de départ et le point de fin pour l'intervalle de capture

  1. Sous l'onglet Flux de contrôle du concepteur SSIS, ajoutez une tâche d'exécution SQL au package.

  2. Ouvrez l'Éditeur de tâche d'exécution SQL, puis dans la page Général de l'éditeur, sélectionnez les options suivantes :

    1. Pour ResultSet, sélectionnez Ligne unique.

    2. Configurez une connexion valide à la base de données source.

    3. Pour SQLSourceType, sélectionnez Entrée directe.

    4. Pour SQLStatement, entrez l'instruction SQL suivante :

      SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime,
        DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
      
  3. Dans la page Ensemble de résultats de l'Éditeur de tâche d'exécution SQL, mappez le résultat d'ExtractStartTime à la variable de package ExtractStartTime, et le résultat d'ExtractEndTime à la variable de package ExtractEndTime.

    Notes

    Lorsque vous utilisez une expression pour définir la valeur d'une variable Integration Services, l'expression est évaluée chaque fois que la valeur de la variable fait l'objet d'un accès.

Étape suivante

Une fois que vous avez calculé le point de départ et le point de fin pour une plage de modifications, l'étape suivante consiste à déterminer si les données modifiées sont prêtes.

Rubrique suivante :Déterminer si les données modifiées sont prêtes

Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN ou TechNet :

Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.