Application des modifications à la destination

Dans le flux de données d'un package Integration Services qui effectue une charge incrémentielle des données modifiées, la troisième et dernière tâche consiste à appliquer les modifications à votre destination. Vous aurez besoin de trois composants : un pour appliquer les insertions, un pour appliquer les mises à jour et un pour appliquer les suppressions.

[!REMARQUE]

La deuxième tâche pour concevoir le flux de données d'un package qui effectue un chargement incrémentiel des données modifiées consiste à séparer les insertions, les mises à jour et les suppressions. Pour plus d'informations sur ce composant, consultez Traitement des insertions, des mises à jour et des suppressions. Pour obtenir une description du processus d'ensemble de la création d'un package qui effectue un chargement incrémentiel des données modifiées, 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 exemples Change Data Capture for Specified Interval Package et Change Data Capture since Last Request Package sur Codeplex (en anglais).

Application d'insertions

Pour appliquer des insertions, vous utilisez une destination OLE DB car les nouvelles lignes ne requièrent pas de traitement spécial.

Pour traiter des insertions à l'aide d'une destination OLE DB

  1. Sous l'onglet Flux de données, ajoutez une destination OLE DB.

  2. Connectez la sortie qui contient les insertions de la transformation de fractionnement conditionnel à la destination OLE DB.

  3. Dans l'Éditeur de destination OLE DB, dans la page Gestionnaire de connexions, sélectionnez les options suivantes :

    1. Sélectionnez ou créez un gestionnaire de connexions OLE DB pour la base de données de destination.

    2. Sélectionnez une option Mode d'accès aux données, puis sélectionnez la table de destination ou entrez une instruction SQL qui contient les colonnes de destination.

  4. Dans la page Mappages de l'éditeur, mappez les colonnes appropriées des données modifiées à la table de destination.

Application de mises à jour

Pour appliquer des mises à jour, vous utilisez une transformation de commande OLE DB. Cela s'explique par le fait que vous devez utiliser une instruction UPDATE paramétrable pour mettre à jour une ligne à la fois avec les nouvelles valeurs de colonne.

[!REMARQUE]

Vous pouvez aussi utiliser des composants de destination pour appliquer des mises à jour. Lorsque vous utilisez cette approche, vous utilisez les composants de destination pour enregistrer les lignes dans des tables temporaires que vous créez à cet effet. Ensuite, vous utilisez des tâches d'exécution SQL pour effectuer les opérations de mise à jour en bloc et de suppression en bloc sur la destination à partir des tables temporaires.

Pour traiter des mises à jour à l'aide d'une transformation de commande OLE DB

  1. Sous l'onglet Flux de données, ajoutez une transformation de commande OLE DB.

  2. Connectez la sortie qui contient les mises à jour de la transformation de fractionnement conditionnel à la transformation de commande OLE DB.

  3. Dans l'Éditeur avancé pour Commande OLE DB, sous l'onglet Gestionnaire de connexions, sélectionnez ou créez un gestionnaire de connexions OLE DB pour la base de données de destination.

  4. Dans l'Éditeur avancé pour Commande OLE DB, sous l'onglet Propriétés du composant, pour SqlCommand, entrez une instruction UPDATE paramétrable.

    Par exemple, une instruction UPDATE pour une table Customer peut avoir la syntaxe suivante :

    update CDCSample.Customer
    set TerritoryID  = ?,
        CustomerType  = ?,
        rowguid  = ?,
        ModifiedDate  = ?
    where CustomerID = ?
    
  5. Sous l'onglet Mappage de colonnes de l'éditeur, mappez les colonnes appropriées des données modifiées aux paramètres dans l'instruction UPDATE.

Application de suppressions

Pour appliquer des suppressions, vous utilisez une transformation de commande OLE DB. Cela s'explique par le fait que vous devez utiliser une instruction DELETE paramétrable qui supprime une ligne à la fois en fonction de la valeur de colonne qui identifie la ligne de façon unique.

[!REMARQUE]

Vous pouvez aussi utiliser des composants de destination pour appliquer des suppressions. Lorsque vous utilisez cette approche, vous utilisez les composants de destination pour enregistrer les lignes dans des tables temporaires que vous créez à cet effet. Ensuite, vous utilisez des tâches d'exécution SQL pour effectuer les opérations de mise à jour en bloc et de suppression en bloc sur la destination à partir des tables temporaires.

Pour traiter des suppressions à l'aide d'une transformation de commande OLE DB

  1. Sous l'onglet Flux de données, ajoutez une transformation de commande OLE DB au flux de données.

  2. Connectez la sortie qui contient les suppressions de la transformation de fractionnement conditionnel à la transformation de commande OLE DB.

  3. Ouvrez l'Éditeur avancé pour configurer la transformation.

  4. Dans l'Éditeur avancé pour Commande OLE DB, sous l'onglet Gestionnaire de connexions, sélectionnez ou créez un gestionnaire de connexions OLE DB pour la base de données de destination.

  5. Dans l'Éditeur avancé pour Commande OLE DB, sous l'onglet Propriétés du composant de l'éditeur, pour SqlCommand, entrez une instruction DELETE paramétrable.

    Par exemple, une instruction DELETE pour une table Customer peut avoir la syntaxe suivante :

    delete from Customer where CustomerID = ?
    
  6. Sous l'onglet Mappage de colonnes de l'éditeur, mappez la colonne appropriée des données modifiées au paramètre dans l'instruction DELETE.

Optimisation des insertions et des mises à jour à l'aide de la fonctionnalité MERGE

Vous pouvez optimiser le traitement des insertions et des mises à jour en combinant certaines options de capture de données modifiées avec l'utilisation du mot clé MERGE Transact-SQL. Pour plus d'informations sur le mot clé MERGE, consultez MERGE (Transact-SQL).

Dans l'instruction Transact-SQL qui récupère les données modifiées, vous pouvez spécifier all with merge comme valeur du paramètre row_filter_option lorsque vous appelez la fonction cdc.fn_cdc_get_net_changes_<capture_instance>. Cette fonction de capture de données modifiées fonctionne plus efficacement lorsqu'elle ne doit pas effectuer le traitement supplémentaire requis pour différencier les insertions des mises à jour. Lorsque vous spécifiez la valeur de paramètre all with merge, la valeur __$operation des données modifiées est 1 pour les suppressions ou 5 pour les modifications résultant d'insertions ou de mises à jour. Pour plus d'informations sur la fonction Transact-SQL utilisée pour récupérer les données modifiées, consultez Récupération et présentation des données modifiées. Après avoir extrait les modifications avec la valeur de paramètre all with merge, vous pouvez appliquer des suppressions et générer en sortie les lignes restantes dans une table temporaire ou une table de transit. Ensuite, dans une tâche d'exécution SQL en aval, vous pouvez utiliser une instruction MERGE unique pour appliquer toutes les insertions ou mises à jour de la table intermédiaire à 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.