Condividi tramite


Origine CDC

Tramite l'origine CDC viene letto un intervallo di dati delle modifiche da tabelle delle modifiche di SQL Server 2012 e vengono recapitate le modifiche a valle ad altri componenti SSIS.

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. 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.

L'origine CDC estrae dati da un database di SQL Server tramite una tabella di database, una vista o un'istruzione SQL.

Per l'origine CDC vengono utilizzate le configurazioni seguenti:

  • Una gestione connessione ADO.NET di SQL Server per accedere al database CDC di SQL Server. Per ulteriori informazioni sulla configurazione della connessione dell'origine CDC, vedere Editor origine CDC (pagina Gestione connessione).

  • Una tabella abilitata per CDC.

  • Il nome dell'istanza di acquisizione della tabella selezionata (se ne è presente più di una).

  • La modalità di elaborazione delle modifiche.

  • Il nome della variabile del pacchetto dello stato CDC in base alla quale viene determinato l'intervallo di elaborazione CDC. L'origine CDC non modifica questa variabile.

I dati restituiti dall'origine CDC sono identici a quelli restituiti dalle funzioni CDC di SQL Server cdc.fn_cdc_get_all_changes_<nome-istanza-acquisizione> o cdc.fn_cdc_get_net_changes_<nome-istanza-acquisizione> (se disponibili). 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. Per ulteriori informazioni sull'elaborazione iniziale, vedere Attività di controllo CDC.

L'origine CDC include un output regolare e un output degli errori.

Gestione degli errori

L'origine CDC include un output degli errori. L'output degli errori del componente include le colonne di output seguenti:

  • Error Code: il valore è sempre -1.

  • Error Column: colonna di origine che provoca l'errore (per gli errori di conversione).

  • Error Row Columns: dati del record che provocano l'errore.

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. Per ulteriori informazioni, vedere Editor origine CDC (pagina Output degli errori).

Supporto dei tipi di dati

Il componente di origine CDC per Microsoft supporta tutti i tipi di dati SQL Server, di cui viene eseguito il mapping ai tipi di dati SSIS corretti.

Risoluzione dei problemi relativi all'origine CDC

Di seguito vengono fornite informazioni sulla risoluzione dei problemi relativi all'origine CDC.

Utilizzare questo script per isolare problemi e riprodurli 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. 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. Viene eseguita la funzione equivalente allo script seguente:

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:

  • <cdc-enabled-database-name> è il nome del database di SQL Server contenente le tabelle delle modifiche.

  • <value-from-state-cs> è il valore visualizzato nella variabile di stato CDC come CS/<value-from-state-cs>/ (CS indica l'inizio dell'intervallo di elaborazione corrente).

  • <value-from-state-ce> è il valore visualizzato nella variabile di stato CDC come CE/<value-from-state-cs>/ (CE indica la fine dell'intervallo di elaborazione corrente).

  • <mode> corrisponde alle modalità di elaborazione CDC. Le modalità di elaborazione hanno uno dei seguenti valori: 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 Studio, in cui è possibile riprodurre e identificare facilmente gli errori.

Messaggio di errore di SQL Server

È possibile che in SQL Server venga restituito il messaggio di errore seguente:

Numero di argomenti insufficiente per la procedura o funzione cdc.fn_cdc_get_net_changes_<..>.

Questo errore non indica che un argomento è mancante. Indica invece che i valori LSN iniziale o finale nella variabile di stato CDC non sono validi.

Configurazione dell'origine CDC

È possibile configurare l'origine CDC a livello di codice o tramite Progettazione SSIS.

Per ulteriori informazioni, vedere uno degli argomenti seguenti:

La finestra di dialogo Editor avanzato contiene le proprietà che è possibile impostare a livello di codice.

Per aprire la finestra di dialogo Editor avanzato:

  • Nella schermata Flusso di dati del progetto di SQL Server 2012 Integration Services (SSIS) fare clic con il pulsante destro del mouse sull'origine CDC e scegliere Visualizza editor avanzato.

Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato, vedere Proprietà personalizzate dell'origine CDC.

Contenuto della sezione

Contenuto correlato