Partager via


Spécifier un intervalle de données modifiées

S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory

Dans le flux de contrôle d’un package Integration Services qui effectue un charge incrémentielle de 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 général de la conception du flux de contrôle, consultez Capture des changements de données (SSIS).

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 SQL Server Data Tools (SSDT), 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 de 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 Utiliser les valeurs des variables et des paramètres 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 tous les deux des fonctions qui prennent en charge les valeurs datetime :

Fonctions en langage d’expression Integration Services qui prennent en charge les valeurs datetime

Fonctions en Transact-SQL qui prennent en charge les valeurs datetime
Type de données et fonctions de date et d’heure (Transact-SQL).

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 charges incrémentielles, 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 utilisant les 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 de requêtes 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 Éditeur de tâche d’exécution de requêtes SQL, mappez le résultat d’ExtractStartTime à la variable de package ExtractStartTime, et le résultat d’ExtractEndTime à la variable de package ExtractEndTime.

    Notes

    Quand 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

Voir aussi

Utiliser des variables dans des packages
Expressions Integration Services (SSIS)
Tache d’exécution de requêtes SQL
Tâche de script