Exécuter un chargement incrémentiel de plusieurs table
S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory
Dans la rubrique Amélioration des chargements incrémentiels avec la capture de données modifiées, le diagramme illustre un package de base qui effectue un chargement incrémentiel 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.
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
Créez un package parent.
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 montrant comment calculer les points de terminaison, consultez Spécifier un intervalle de données modifiées.
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 de ce type de conteneur For Loop, consultez Déterminer si les données modifiées sont prêtes.
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 Utiliser les valeurs des variables et des paramètres dans un package enfant.
Pour créer des packages enfants afin d'effectuer les étapes devant être réalisées pour chaque table source
Pour chaque table source, créez un package enfant.
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 montrant comment assembler la requête, consultez Préparer la recherche des données modifiées.
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 :
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 montrant comment interroger les tables de modifications, consultez Récupérer et comprendre les données modifiées.
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 montrant comment configurer cette transformation pour diriger la sortie, consultez Traiter les insertions, les mises à jour et les suppressions.
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 montrant comment utiliser cette transformation pour appliquer les mises à jour et les suppressions, consultez Appliquer 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
Créez un package unique.
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 montrant comment calculer les points de terminaison, consultez Spécifier un intervalle de données modifiées.
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 de ce type de conteneur For Loop, consultez Déterminer si les données modifiées sont prêtes.
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 montrant comment assembler la requête, consultez Préparer la recherche des données modifiées.
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.
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 montrant comment interroger les tables de modifications, consultez Récupérer et comprendre les données modifiées.
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 montrant comment configurer cette transformation pour diriger la sortie, consultez Traiter les insertions, les mises à jour et les suppressions.
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 montrant comment utiliser cette transformation pour appliquer les mises à jour et les suppressions, consultez Appliquer des modifications à la destination.