Origine CDCCDC Source

Tramite l'origine CDC viene letto un intervallo di dati delle modifiche da tabelle delle modifiche di SQL Server 2017SQL Server 2017 ; queste vengono poi recapitate a valle ad altri componenti SSIS.The CDC source reads a range of change data from SQL Server 2017SQL Server 2017 change tables and delivers the changes downstream to other SSIS components.

L'intervallo di dati delle modifiche letti dall'origine CDC è denominato intervallo di elaborazione CDC ed è determinato dall'attività di controllo CDC eseguita prima dell'inizio del flusso di dati corrente.The range of change data read by the CDC source is called the CDC Processing Range and is determine by the CDC Control task that is executed before the current data flow starts. L'Intervallo di elaborazione CDC viene derivato dal valore di una variabile del pacchetto che gestisce lo stato dell'elaborazione CDC per un gruppo di tabelle.The CDC Processing Range is derived from the value of a package variable that maintains the state of the CDC processing for a group of tables.

L'origine CDC estrae dati da un database di SQL ServerSQL Server tramite una tabella di database, una vista o un'istruzione SQL.The CDC source extracts data from a SQL ServerSQL Server database by using a database table, a view, or an SQL statement.

Per l'origine CDC vengono utilizzate le configurazioni seguenti:The CDC source uses the following configurations:

  • Una gestione connessione ADO.NET di SQL ServerSQL Server per accedere al database CDC di SQL ServerSQL Server .A SQL ServerSQL Server ADO.NET connection manager to access the SQL ServerSQL Server CDC database. Per altre informazioni sulla configurazione della connessione dell'origine CDC, vedere Editor origine CDC (pagina Gestione connessione).For more information about configuring the CDC source connection, see CDC Source Editor (Connection Manager Page).

  • Una tabella abilitata per CDC.A table enabled for CDC.

  • Il nome dell'istanza di acquisizione della tabella selezionata (se ne è presente più di una).The name of the capture instance of the selected table (if more-than-one exists).

  • La modalità di elaborazione delle modifiche.The change processing mode.

  • Il nome della variabile del pacchetto dello stato CDC in base alla quale viene determinato l'intervallo di elaborazione CDC.The name of the CDC state package variable based on which the CDC Processing range is determined. L'origine CDC non modifica questa variabile.The CDC source does not modify that variable.

    I dati restituiti dall'origine CDC sono uguale a quello restituito dal SQL ServerSQL Server funzioni CDC CDC. fn_cdc_get_all_changes _<capture-instance-name > o CDC. fn_cdc_get_net_changes_<capture-instance-name > (quando disponibile).The data returned by the CDC Source is the same as that returned by the SQL ServerSQL Server CDC functions cdc.fn_cdc_get_all_changes_<capture-instance-name> or cdc.fn_cdc_get_net_changes_<capture-instance-name> (when available). L'unica aggiunta facoltativa è la colonna __$initial_processing , che indica se l'intervallo di elaborazione corrente può essere sovrapposto a un caricamento iniziale della tabella.The only optional addition is the column, __$initial_processing that indicates whether the current processing range can overlap with an initial load of the table. Per ulteriori informazioni sull'elaborazione iniziale, vedere Attività di controllo CDC.For more information about initial processing, see CDC Control Task.

    L'origine CDC include un output regolare e un output degli errori.The CDC source has one regular output and one error output.

Gestione degli erroriError Handling

L'origine CDC include un output degli errori.The CDC source has an error output. L'output degli errori del componente include le colonne di output seguenti:The component error output includes the following output columns:

  • Error Code: il valore è sempre -1.Error Code: The value is always -1.

  • Error Column: colonna di origine che provoca l'errore (per gli errori di conversione).Error Column: The source column causing the error (for conversion errors).

  • Error Row Columns: dati del record che provocano l'errore.Error Row Columns: The record data that causes the error.

    A seconda dell'impostazione del comportamento in seguito all'errore, l'origine CDC supporta la restituzione degli errori (conversione dei dati, troncamento) che si verificano durante il processo di estrazione nell'output degli errori.Depending on the error behavior setting, the CDC source supports returning errors (data conversion, truncation) that occur during the extraction process in the error output. Per altre informazioni, vedere Editor origine CDC (pagina Output degli errori).For more information, see CDC Source Editor (Error Output Page).

Supporto dei tipi di datiData Type Support

Il componente di origine CDC per Microsoft supporta tutti i tipi di dati SQL ServerSQL Server , di cui viene eseguito il mapping ai tipi di dati SSIS corretti.The CDC source component for Microsoft supports all SQL ServerSQL Server data types, which are mapped to the correct SSIS data types.

Risoluzione dei problemi relativi all'origine CDCTroubleshooting the CDC Source

Di seguito vengono fornite informazioni sulla risoluzione dei problemi relativi all'origine CDC.The following contains information on troubleshooting the CDC source.

Utilizzare questo script per isolare problemi e riprodurli in SQL Server Management StudioUse this script to isolate problems and reproduce them in SQL Server Management Studio

Il funzionamento dell'origine CDC è regolato dal funzionamento dell'attività di controllo CDC eseguita prima di richiamare l'origine CDC.The CDC source operation is governed by the operation of the CDC Control task executed before invoking the CDC source. Tramite l'attività di controllo CDC viene preparato il valore della variabile del pacchetto dello stato CDC in modo da contenere gli LSN iniziale e finale.The CDC Control task prepares the value of the CDC state package variable to contain the start and end LSNs. Viene eseguita la funzione equivalente allo script seguente:It performs function equivalent to the following script:

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>')  

dove:where:

  • <CDC-abilitata-database-name > è il nome del SQL ServerSQL Server database contenente le tabelle delle modifiche.<cdc-enabled-database-name> is the name of the SQL ServerSQL Server database containing the change tables.

  • <valore-from-state-cs > è il valore visualizzato nella variabile di stato CDC come CS /<valore-from-state-cs > / (CS indica per inizio intervallo di elaborazione corrente).<value-from-state-cs> is the value that appears in the CDC state variable as CS/<value-from-state-cs>/ (CS stands for Current-processing-range-Start).

  • <valore da-state-ce > è il valore visualizzato nella variabile di stato CDC come CE /<valore-from-state-cs > / (CE è l'acronimo di fine intervallo di elaborazione corrente).<value-from-state-ce> is the value that appears in the CDC state variable as CE/<value-from-state-cs>/ (CE stands for Current-processing-range-End).

  • <modalità > sono le modalità di elaborazione CDC.<mode> are the CDC processing modes. Le modalità di elaborazione hanno uno dei seguenti valori: All, All with Old Values, Net, Net with Update Mask, Net with Merge.The processing modes have one of the following values All, All with Old Values, Net, Net with Update Mask, Net with Merge.

    Questo script consente di isolare i problemi riproducendoli in SQL Server Management StudioSQL Server Management Studio, in cui è possibile riprodurre e identificare facilmente gli errori.This script helps isolate problems by reproducing them in the SQL Server Management StudioSQL Server Management Studio, where it is easy to reproduce and identify errors.

Messaggio di errore di SQL ServerSQL Server Error Message

È possibile che in SQL ServerSQL Servervenga restituito il messaggio di errore seguente:The following message may be returned by SQL ServerSQL Server:

Sono stato specificato un numero insufficiente di argomenti per la procedura o funzione CDC. fn_cdc_get_net_changes _<... >.An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_net_changes_<..>.

Questo errore non indica che un argomento è mancante.This error does not indicate that an argument is missing. Indica invece che i valori LSN iniziale o finale nella variabile di stato CDC non sono validi.It means that the start or end LSN values in the CDC state variable are invalid.

Configurazione dell'origine CDCConfiguring the CDC Source

È possibile configurare l'origine CDC a livello di codice o tramite Progettazione SSIS.You can configure the CDC source programmatically or through the SSIS Designer.

Per ulteriori informazioni, vedere uno degli argomenti seguenti:For more information, see one of the following topics:

Contenuto della sezioneIn This Section