Partager via


Exécution d'une charge incrémentielle de plusieurs tables

Dans la rubrique Amélioration des charges incrémentielles avec la capture de données modifiées, le diagramme illustre un package de base qui effectue une charge incrémentielle sur une seule table. Toutefois, il est plus fréquent de devoir effectuer un chargement incrémentiel de plusieurs tables.

Dans le cadre d'un chargement incrémentiel de plusieurs tables, certaines étapes doivent être effectuées une seule fois pour toutes les tables, alors que d'autres doivent être répétées pour chaque table source. Plusieurs options s'offrent à vous pour implémenter ces étapes dans Integration Services :

  • Utiliser un package parent et des packages enfants.

  • Utiliser plusieurs tâches de flux de données dans un package unique.

[!REMARQUE]

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 exemples Change Data Capture for Specified Interval Package et Change Data Capture since Last Request Package sur Codeplex (en anglais).

Chargement de plusieurs tables à l'aide d'un package parent et de plusieurs packages enfants

Vous pouvez utiliser un package parent pour effectuer les étapes qui ne doivent être réalisées qu'une seule fois. Les packages enfants effectuent quant à eux les étapes devant être réalisées pour chaque table source.

Pour créer un package parent qui effectue les étapes qui ne doivent être réalisées qu'une seule fois

  1. Créez un package parent.

  2. Dans le flux de contrôle, utilisez une tâche d'exécution SQL ou des expressions Integration Services pour calculer les points de terminaison.

    Pour obtenir un exemple de calcul des points de terminaison, consultez Spécification d'un intervalle de données modifiées.

  3. Si nécessaire, utilisez un conteneur de boucles For pour différer l'exécution jusqu'à ce que les données modifiées pour la période sélectionnée soient prêtes.

    Pour obtenir un exemple d'un tel conteneur de boucles For, consultez Déterminer si les données modifiées sont prêtes.

  4. Utilisez plusieurs tâches d'exécution SQL pour exécuter des packages enfants pour chaque table à charger. Passez les points de terminaison calculés dans le package parent à chaque package enfant en utilisant des configurations Variable de package parent.

    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.

Pour créer des packages enfants afin d'effectuer les étapes devant être réalisées pour chaque table source

  1. Pour chaque table source, créez un package enfant.

  2. Dans le flux de contrôle, utilisez une tâche de script ou une tâche d'exécution SQL pour assembler l'instruction SQL qui sera utilisée pour rechercher les modifications.

    Pour obtenir un exemple d'assemblage de la requête, consultez Préparation de la recherche des données modifiées.

  3. Utilisez une tâche de flux de données unique dans chaque package enfant pour charger les données modifiées et les appliquer à la destination. Configurez le flux de données comme décrit dans les étapes suivantes :

    1. Dans le flux de données, utilisez un composant source pour interroger les tables de modifications à propos des modifications qui se situent dans les points de terminaison sélectionnés.

      Pour obtenir un exemple d'interrogation des tables de modifications, consultez Récupération et présentation des données modifiées.

    2. Utilisez une transformation de fractionnement conditionnel pour diriger les insertions, les mises à jour et les suppressions vers les différentes sorties pour un traitement approprié.

      Pour obtenir un exemple de configuration de cette transformation pour diriger la sortie, consultez Traitement des insertions, des mises à jour et des suppressions.

    3. Utilisez un composant de destination pour appliquer les insertions à la destination. Utilisez des transformations de commande OLE DB avec des instructions UPDATE et DELETE paramétrables pour appliquer les mises à jour et les suppressions à la destination.

      Pour obtenir un exemple d'utilisation de cette transformation pour appliquer les mises à jour et les suppressions, consultez Application des modifications à la destination.

Chargement de plusieurs tables à l'aide de plusieurs tâches de flux de données dans un package unique

Une autre méthode consiste à utiliser un package unique qui contient une tâche de flux de données séparée pour chaque table source à charger.

Pour charger plusieurs tables à l'aide de plusieurs tâches de flux de données dans un package unique

  1. Créez un package unique.

  2. Dans le flux de contrôle, utilisez une tâche d'exécution SQL ou des expressions Integration Services pour calculer les points de terminaison.

    Pour obtenir un exemple de calcul des points de terminaison, consultez Spécification d'un intervalle de données modifiées.

  3. Si nécessaire, utilisez un conteneur de boucles For pour différer l'exécution jusqu'à ce que les données modifiées pour l'intervalle sélectionné soient prêtes.

    Pour obtenir un exemple d'un tel conteneur de boucles For, consultez Déterminer si les données modifiées sont prêtes.

  4. Utilisez une tâche de script ou une tâche d'exécution SQL pour assembler l'instruction SQL qui sera utilisée pour rechercher les données modifiées.

    Pour obtenir un exemple d'assemblage de la requête, consultez Préparation de la recherche des données modifiées.

  5. Utilisez plusieurs tâches de flux de données pour charger les données modifiées à partir de chaque table source et les appliquer à la destination. Configurez chaque tâche de flux de données comme décrit dans les étapes suivantes.

    1. Dans chaque flux de données, utilisez un composant source pour interroger les tables de modifications à propos des modifications qui se situent dans les points de terminaison sélectionnés.

      Pour obtenir un exemple d'interrogation des tables de modifications, consultez Récupération et présentation des données modifiées.

    2. Utilisez une transformation de fractionnement conditionnel pour diriger les insertions, les mises à jour et les suppressions vers les différentes sorties pour un traitement approprié.

      Pour obtenir un exemple de configuration de cette transformation pour diriger la sortie, consultez Traitement des insertions, des mises à jour et des suppressions.

    3. Utilisez un composant de destination pour appliquer les insertions à la destination. Utilisez des transformations de commande OLE DB avec des instructions UPDATE et DELETE paramétrables pour appliquer les mises à jour et les suppressions à la destination.

      Pour obtenir un exemple d'utilisation de cette transformation pour appliquer les mises à jour et les suppressions, consultez Application des modifications à la destination.

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.