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.

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

Editor origine CDC (pagina Gestione connessione)CDC Source Editor (Connection Manager Page)

Usare la pagina Gestione connessione della finestra di dialogo Editor origine CDC per selezionare la gestione connessione ADO.NET per il database di SQL Server 2017SQL Server 2017 da cui l'origine CDC legge le righe delle modifiche (database CDC).Use the Connection Manager page of the CDC Source Editor dialog box to select the ADO.NET connection manager for the SQL Server 2017SQL Server 2017 database that the CDC source reads change rows from (the CDC database). Dopo aver selezionato il database CDC è necessario selezionare una tabella acquisita nel database.Once the CDC database is selected you need to select a captured table in the database.

Per altre informazioni sull'origine CDC, vedere Origine CDC.For more information about the CDC source, see CDC Source.

Elenco attivitàTask List

Per aprire CDC Source Editor (pagina Gestione connessione)To open the CDC Source Editor Connection Manager Page

  1. In SQL Server Data ToolsSQL Server Data Tools, aprire il pacchetto SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) che contiene l'origine CDC.In SQL Server Data ToolsSQL Server Data Tools, open the SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) package that has the CDC source.

  2. Nella scheda Flusso di dati fare doppio clic sull'origine CDC.On the Data Flow tab, double-click the CDC source.

  3. Nell' Editor origine CDCfare clic su Gestione connessione.In the CDC Source Editor, click Connection Manager.

OpzioniOptions

Gestione connessione ADO.NETADO.NET connection manager
Selezionare una gestione connessione esistente nell'elenco o creare una nuova connessione facendo clic su Nuova .Select an existing connection manager from the list, or click New to create a new connection. La connessione deve essere stabilita a un database di SQL ServerSQL Server abilitato per CDC e in cui si trova la tabella delle modifiche selezionata.The connection must be to a SQL ServerSQL Server database that is enabled for CDC and where the selected change table is located.

NuovaNew
Fare clic su Nuovo.Click New. Verrà visualizzata la finestra di dialogo Editor della gestione connessione ADO.NET in cui è possibile creare una nuova gestione connessioneThe Configure ADO.NET Connection Manager Editor dialog box opens where you can create a new connection manager

CDC TableCDC Table
Selezionare la tabella di origine CDC contenente le modifiche acquisite che si desidera leggere e inviare ai componenti SSIS a valle per l'elaborazione.Select the CDC source table that contains the captured changes that you want read and feed to downstream SSIS components for processing.

Istanza di acquisizioneCapture instance
Selezionare o digitare il nome dell'istanza di acquisizione CDC con la tabella CDC da leggere.Select or type in the name of the CDC capture instance with the CDC table to be read.

Una tabella di origine acquisita può contenere una o due istanze acquisite per gestire la transizione senza problemi della definizione di tabella mediante modifiche dello schema.A captured source table can have one or two captured instances to handle seamless transitioning of table definition through schema changes. Se per la tabella di origine in corso di acquisizione sono definite più istanze di acquisizione, selezionare l'istanza di acquisizione che si desidera utilizzare a questo punto.If more than one capture instance is defined for the source table being captured, select the capture instance you want to use here. Il nome di istanza di acquisizione predefinito per una tabella [schema]. [tabella] è <schema > <tabella >, ma che i nomi delle istanze di acquisizione effettivi in uso potrebbero essere diversi.The default capture instance name for a table [schema].[table] is <schema><table> but that actual capture instance names in use may be different. La tabella effettiva che viene letto dal è la tabella CDC cdc.< istanza di acquisizione > CT.The actual table that is read from is the CDC table cdc .<capture-instance>_CT.

CDC Processing ModeCDC Processing Mode
Selezionare la modalità di elaborazione più adatta per le esigenze di elaborazione correnti.Select the processing mode that best handles your processing needs. Di seguito sono elencate le opzioni possibili:The possible options are:

  • All: restituisce le modifiche nell'intervallo CDC corrente senza i valori Before Update .All: Returns the changes in the current CDC range without the Before Update values.

  • All with old values: restituisce le modifiche nell'intervallo di elaborazione CDC corrente inclusi i valori precedenti (Before Update).All with old values: Returns the changes in the current CDC processing range including the old values (Before Update). Ogni operazione di aggiornamento prevede due righe: una con i valori prima dell'aggiornamento e una con i valori dopo l'aggiornamento.For each Update operation, there will be two rows, one with the before-update values and one with the after-update value.

  • Net: restituisce una sola riga delle modifiche per ogni riga di origine modificata nell'intervallo di elaborazione CDC corrente.Net: Returns only one change row per source row modified in the current CDC processing range. Se una riga di origine è stata aggiornata più volte, viene restituita la modifica combinata (ad esempio, inserimento+aggiornamento viene prodotto come un singolo aggiornamento e aggiornamento+eliminazione viene prodotto come una singola eliminazione).If a source row was updated multiple times, the combined change is produced (for example, insert+update is produced as a single update and update+delete is produced as a single delete). Quando si utilizza la modalità di elaborazione delle modifiche Net, è possibile suddividere le modifiche negli output Delete, Insert e Update e gestirli in parallelo, perché la singola riga di origine viene visualizzata in più output.When working in Net change processing mode, it is possible to split the changes to Delete, Insert and Update outputs and handle them in parallel because the single source row appears in more than one output.

  • NET con maschera di aggiornamento: questa modalità è simile alla modalità Net standard, ma aggiunge anche colonne booleane con il modello di nome _ $<nome colonna >__Changed che indicano le colonne modificate nella finestra corrente riga modificata.Net with update mask: This mode is similar to the regular Net mode but it also adds boolean columns with the name pattern __$<column-name>__Changed that indicate changed columns in the current change row.

  • Net with merge: questa modalità è simile alla modalità Net standard, ma con le operazioni Insert e Update unite in una singola operazione Merge (UPSERT).Net with merge: This mode is similar to the regular Net mode but with Insert and Update operations merged into a single Merge operation (UPSERT).

Nota

Per tutte le opzioni di modifica Net, è necessario che la tabella di origine disponga di una chiave primaria o di un indice univoco.For all Net change options, the source table must have a primary key or unique index. Per tabelle senza una chiave primaria o indici univoci, usare l'opzione All .For tables without a primary key or unique indes, you must yse the All option.

Variabile contenente lo stato CDCVariable containing the CDC state
Selezionare la variabile del pacchetto di stringhe SSIS che gestisce lo stato CDC per il contesto CDC corrente.Select the SSIS string package variable that maintains the CDC state for the current CDC context. Per altre informazioni sulla variabile di stato CDC, vedere Definire una variabile di stato.For more information about the CDC state variable, see Define a State Variable.

Include reprocessing indicator columnInclude reprocessing indicator column
Selezionare questa casella di controllo per creare una colonna di output speciale denominata __$reprocessing.Select this check box to create a special output column called __$reprocessing.

Questa colonna contiene un valore true quando l'intervallo di elaborazione CDC si sovrappone all'intervallo di elaborazione iniziale (l'intervallo di LSN che corrisponde al periodo di caricamento iniziale) o quando un intervallo di elaborazione CDC viene rielaborato a causa di un errore in un'esecuzione precedente.This column has a value of true when the CDC processing range overlaps with the initial processing range (the range of LSNs corresponding to the period of initial load) or when a CDC processing range is reprocessed following an error in a previous run. Questa colonna indicatore consente agli sviluppatori di SSIS di gestire gli errori in modo diverso durante la rielaborazione delle modifiche. Azioni quali l'eliminazione di una riga non esistente e l'inserimento non riuscito su una chiave duplicata, ad esempio, possono essere ignorate.This indicator column lets the SSIS developer handle errors differently when reprocessing changes (for example, actions such as a delete of a non-existing row and an insert that failed on a duplicate key can be ignored).

Per altre informazioni, vedere Proprietà personalizzate dell'origine CDC.For more information, see CDC Source Custom Properties.

Editor origine CDC (pagina Colonne)CDC Source Editor (Columns Page)

Usare la pagina Colonne della finestra di dialogo CDC Source Editor (Editor origine CDC) per eseguire il mapping tra una colonna di output e ogni colonna esterna (di origine).Use the Columns page of the CDC Source Editor dialog box to map an output column to each external (source) column.

Elenco attivitàTask List

Per aprire CDC Source Editor (pagina Colonne)To open the CDC Source Editor Columns Page

  1. In SQL Server Data ToolsSQL Server Data Tools, aprire il pacchetto SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) che contiene l'origine CDC.In SQL Server Data ToolsSQL Server Data Tools, open the SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) package that has the CDC source.

  2. Nella scheda Flusso di dati fare doppio clic sull'origine CDC.On the Data Flow tab, double-click the CDC source.

  3. In CDC Source Editor, fare clic su Colonne.In the CDC Source Editor, click Columns.

OpzioniOptions

Colonne esterne disponibiliAvailable External Columns
Elenco delle colonne esterne disponibili nell'origine dei dati.A list of available external columns in the data source. Non è possibile utilizzare questa tabella per l'aggiunta o l'eliminazione di colonne.You cannot use this table to add or delete columns. Selezionare le colonne da utilizzare nell'origine.Select the columns to use in the source. Le colonne scelte vengono aggiunte all'elenco Colonna esterna nell'ordine in cui vengono selezionate.The selected columns are added to the External Column list in the order they are selected.

Colonna esternaExternal Column
Una vista delle colonne esterne (di origine) nell'ordine in cui vengono presentate durante la configurazione di componenti che utilizzano i dati dell'origine CDC.A view of the external (source) columns in the order that you see them when configuring components that consume data from the CDC source. Per modificare questo ordine, deselezionare innanzitutto le colonne selezionate nell'elenco Colonne esterne disponibili , quindi selezionare le colonne esterne nell'elenco secondo un ordine diverso.To change this order, first clear the selected columns in the Available External Columns list, and then select external columns from the list in a different order. Le colonne scelte vengono aggiunte all'elenco Colonna esterna nell'ordine in cui vengono selezionate.The selected columns are added to the External Column list in the order you select them.

Colonna di outputOutput Column
Consente di immettere un nome univoco per ogni colonna di output.Enter a unique name for each output column. Per impostazione predefinita viene suggerito il nome della colonna esterna (di origine) selezionata. È comunque possibile scegliere qualsiasi nome descrittivo univoco.The default is the name of the selected external (source) column, however you can choose any unique, descriptive name. Il nome immesso viene visualizzato in Progettazione SSIS.The name entered is displayed in the SSIS Designer.

Editor origine CDC (pagina Output degli errori)CDC Source Editor (Error Output Page)

Usare la pagina Output degli errori della finestra di dialogo Editor origine CDC per selezionare le opzioni di gestione degli errori.Use the Error Output page of the CDC Source Editor dialog box to select error handling options.

Elenco attivitàTask List

Per aprire CDC Source Editor (pagina Output degli errori)To open the CDC Source Editor Error Output Page

  1. In SQL Server Data ToolsSQL Server Data Tools, aprire il pacchetto SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) che contiene l'origine CDC.In SQL Server Data ToolsSQL Server Data Tools, open the SQL Server 2017 Integration Services (SSIS)SQL Server 2017 Integration Services (SSIS) package that has the CDC source.

  2. Nella scheda Flusso di dati fare doppio clic sull'origine CDC.On the Data Flow tab, double-click the CDC source.

  3. In Editor origine CDCfare clic su Output degli errori.In the CDC Source Editor, click Error Output.

OpzioniOptions

Input/OutputInput/Output
Consente di visualizzare il nome dell'origine dei dati.View the name of the data source.

ColonnaColumn
Consente di visualizzare le colonne esterne (di origine) selezionate nella pagina Gestione connessione della finestra di dialogo Editor origine CDC .View the external (source) columns that you selected on the Connection Manager page of the CDC Source Editor dialog box.

ErroreError
Consente di selezionare il modo in cui l'origine CDC deve gestire gli errori in un flusso: ignorare l'errore, reindirizzare la riga o interrompere il componente.Select how the CDC source should handle errors in a flow: ignore the failure, redirect the row, or fail the component.

TroncamentoTruncation
Consente di selezionare il modo in cui l'origine CDC deve gestire il troncamento in un flusso: ignorare l'errore, reindirizzare la riga o interrompere il componente.Select how the CDC source should handle truncation in a flow: ignore the failure, redirect the row, or fail the component.

DescriptionDescription
Non usato.Not used.

Imposta questo valore nelle celle selezionateSet this value to selected cells
Consente di selezionare il modo in cui l'origine CDC gestisce tutte le celle selezionate in caso di errore o troncamento: ignorare l'errore, reindirizzare la riga o interrompere il componente.Select how the CDC source handles all selected cells when an error or truncation occurs: ignore the failure, redirect the row, or fail the component.

ApplicaApply
Consente di applicare le opzioni di gestione degli errori alle celle selezionate.Apply the error handling options to the selected cells.

Opzioni di gestione degli erroriError Handling Options

Utilizzare le opzioni seguenti per configurare il modo in cui l'origine CDC gestisce errori e troncamenti.You use the following options to configure how the CDC source handles errors and truncations.

Interrompi componenteFail Component
Quando si verifica un errore o un troncamento l'attività Flusso di dati viene interrotta.The Data Flow task fails when an error or a truncation occurs. Questo è il comportamento predefinito.This is the default behavior.

Ignora erroreIgnore Failure
L'errore o il troncamento viene ignorato e la riga di dati viene indirizzata all'output dell'origine CDC.The error or the truncation is ignored and the data row is directed to the CDC source output.

Reindirizza flussoRedirect Flow
La riga di dati contenente l'errore o il troncamento viene indirizzata all'output degli errori dell'origine CDC.The error or the truncation data row is directed to the error output of the CDC source. In questo caso, viene utilizzata la gestione degli errori dell'origine CDC.In this case the CDC source error handling is used. Per altre informazioni, vedere Origine CDC.For more information, see CDC Source.