Partager via


Source CDC

La source CDC lit une plage de données de modification de SQL Server tables de modifications 2014 et fournit les modifications en aval à d’autres composants SSIS.

La plage de données modifiées lue par la source CDC est appelée « plage de traitement de capture de données modifiées » et est déterminée par la tâche de contrôle de capture de données modifiées exécutée avant le démarrage du flux de données actuel. La plage de traitement de capture de données modifiées est dérivée de la valeur d'une variable de package qui gère l'état du traitement de capture de données modifiées pour un groupe de tables.

La source CDC extrait les données d’une base de données SQL Server à l’aide d’une table de base de données, d’une vue ou d’une instruction SQL.

La source CDC utilise les configurations suivantes :

  • Un gestionnaire de connexions ADO.NET SQL Server pour accéder à la base de données CDC SQL Server . Pour plus d’informations sur la configuration de la connexion à la source de capture des changements de données, consultez Éditeur de source de capture des changements de données (page Gestionnaire de connexions).

  • Une table pour laquelle la capture de données modifiées est activée.

  • Le nom de l'instance de capture de la table sélectionnée (s'il en existe plusieurs).

  • Le mode de traitement des modifications.

  • Le nom de la variable de package d'état de capture de données modifiées à partir de laquelle la plage de traitement de capture de données modifiées est déterminée. La source CDC ne modifie pas cette variable.

Les données retournées par la source de capture des changements de données sont les mêmes que celles retournées par les fonctions de capture des changements de données SQL Server cdc.fn_cdc_get_all_changes_<nom-instance-capture> et cdc.fn_cdc_get_net_changes_<nom-instance-capture> (si elles sont disponibles). Le seul ajout facultatif est la colonne __$initial_processing qui indique si la plage de traitement actuelle peut chevaucher une charge initiale de la table. Pour plus d’informations sur la traitement initial, consultez Tâche de contrôle de capture de données modifiées.

La source CDC a une sortie normale et une sortie d'erreur.

Gestion des erreurs

la source CDC a une sortie d'erreur. La sortie d'erreur du composant contient les colonnes de sortie suivantes :

  • Code d’erreur: la valeur est toujours -1.

  • Colonne d’erreur: colonne source à l’origine de l’erreur (pour les erreurs de conversion).

  • Colonnes de ligne d’erreur: données d’enregistrement à l’origine de l’erreur.

Selon le comportement paramétré pour les erreurs, la source CDC prend en charge les erreurs de retour (conversion de données, troncation) qui se produisent pendant le processus d'extraction dans la sortie d'erreur. Pour plus d’informations, consultez Éditeur de source CDC (page Sortie d’erreur).

Prise en charge du type de données

Le composant source CDC pour Microsoft prend en charge tous les types de données SQL Server qui sont mappés à des types de données SSIS appropriés.

Résolution des problèmes liés à la source CDC

Les éléments suivants contiennent des informations utiles à la résolution des problèmes liés à la source CDC.

Utilisez ce script pour isoler les problèmes et les reproduire dans SQL Server Management Studio

L'opération de la source CDC est régie par l'opération de la tâche de contrôle de capture de données modifiées exécutée avant d'appeler la source CDC. La tâche de contrôle de capture de données modifiées prépare la valeur de la variable de package d'état de capture de données modifiées de sorte qu'elle contienne le NSE de début et le NSE de fin. Elle exécute une fonction équivalente au script suivant :

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

où :

  • <cdc-enabled-database-name> est le nom de la base de données SQL Server contenant les tables de modifications.

  • <value-from-state-cs> est la valeur affichée dans la variable d’état de capture des changements de données sous la forme CS/<value-from-state-cs>/ (CS correspondant à Current-processing-range-Start, début de la plage de traitement actuelle).

  • <value-from-state-ce> est la valeur affichée dans la variable d’état de capture des changements de données sous la forme CE/<value-from-state-cs>/ (CE correspondant à Current-processing-range-End, fin de la plage de traitement actuelle).

  • <mode> correspond aux modes de traitement de capture des changements de données. Les modes de traitement ont l’une des valeurs suivantes : Tout, Tout avec les anciennes valeurs, NET, Net avec masque de mise à jouret Net avec fusion.

Ce script aide à isoler les problèmes en les reproduisant dans SQL Server Management Studio, où il est facile de reproduire et d'identifier des erreurs.

Message d'erreur SQL Server

Le message suivant peut être retourné par SQL Server:

Nombre d’arguments fournis insuffisant pour la procédure ou la fonction cdc.fn_cdc_get_net_changes_<..>.

Cette erreur n'indique pas qu'un argument est manquant. Elle signifie que les valeurs du NSE de début ou du NSE de fin dans la variable d'état de capture de données modifiées ne sont pas valides.

Configuration de la source CDC

Vous pouvez configurer la source CDC par programme ou par le biais du concepteur SSIS.

Pour plus d’informations, consultez l’une des rubriques suivantes :

La boîte de dialogue Éditeur avancé contient les propriétés qui peuvent être définies par programme.

Pour ouvrir la boîte de dialogue Éditeur avancé :

  • Dans l’écran Data Flow de votre projet SQL Server 2014 Integration Services (SSIS), cliquez avec le bouton droit sur la source CDC et sélectionnez Afficher Éditeur avancé.

Pour plus d’informations sur les propriétés que vous pouvez définir dans la boîte de dialogue Éditeur avancé , consultez Propriétés personnalisées des sources CDC.

Dans cette section