Definire una variabile di stato
Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory
Importante
I componenti del flusso CDC, tra cui l'attività di controllo CDC, l'origine CDC e CDC Splitter, sono deprecati. Per altri dettagli, si veda l'annuncio.
In questa procedura viene descritto come definire una variabile del pacchetto in cui è archiviato lo stato CDC.
La variabile di stato CDC viene caricata, inizializzata e aggiornata tramite l'attività di controllo CDC e viene utilizzata dal componente flusso di dati dell'origine CDC per determinare l'intervallo di elaborazione corrente per i record delle modifiche. È possibile definire la variabile di stato CDC in qualsiasi contenitore comune all'attività di controllo CDC e all'origine CDC. Questo può essere a livello di pacchetto, ma può anche trovarsi in altri contenitori, ad esempio un contenitore ciclo.
La modifica manuale del valore della variabile di stato CDC non è consigliata, ma può essere utile per comprenderne il contenuto.
Nella tabella seguente viene fornita una descrizione di alto livello dei componenti del valore della variabile di stato CDC.
Componente | Descrizione |
---|---|
<state-name> | Si tratta del nome dello stato CDC corrente. |
CS | Viene contrassegnato il punto di inizio dell'intervallo di elaborazione corrente (inizio corrente). |
<cs-lsn> | Si tratta dell'ultimo numero di sequenza del file di log (LSN) elaborato nell'esecuzione CDC precedente. |
CE | Viene contrassegnato il punto di fine dell'intervallo di elaborazione corrente (fine corrente). La presenza del componente CE nello stato CDC indica che un pacchetto CDC è attualmente in fase di elaborazione o che si è verificato un errore di esecuzione di un pacchetto CDC prima del completamento dell'elaborazione dell'intervallo di elaborazione CDC. |
<ce-lsn> | Si tratta dell'ultimo LSN da elaborare nell'esecuzione CDC corrente. Si presuppone sempre che l'ultimo numero di sequenza da elaborare sia il valore massimo (0xFFF...). |
IR | Viene contrassegnato l'intervallo di elaborazione iniziale. |
<ir-start> | Si tratta di un numero LSN di una modifica appena prima dell'avvio del caricamento iniziale. |
<ir-end> | Si tratta di un numero LSN di una modifica appena dopo il completamento del caricamento iniziale. |
TS | Viene contrassegnato il timestamp per l'ultimo aggiornamento dello stato CDC. |
<timestamp> | Si tratta di una rappresentazione decimale della proprietà System.DateTime.UtcNow a 64 bit. |
ER | Viene visualizzato quando si verifica un errore durante l'esecuzione dell'ultima operazione ed è inclusa una breve descrizione della causa dell'errore. Se il componente è presente, viene sempre visualizzato per ultimo. |
<short-error-text> | Si tratta della breve descrizione dell'errore. |
I numeri LSN e di sequenza sono tutti codificati come stringa esadecimale fino a un massimo di 20 cifre che rappresentano il valore LSN di Binary(10).
Nella tabella seguente vengono descritti i possibili valori dello stato CDC.
Stato | Descrizione |
---|---|
(INITIAL) | Si tratta dello stato iniziale prima dell'esecuzione di qualsiasi pacchetto nel gruppo CDC corrente. È anche lo stato quando lo stato CDC è vuoto. |
ILSTART (Initial Load Started) | Si tratta dello stato all'avvio del pacchetto di caricamento iniziale, dopo la chiamata dell'operazione MarkInitialLoadStart all'attività di controllo CDC. |
ILEND (Initial Load Ended) | Si tratta dello stato al corretto completamento del pacchetto di caricamento iniziale, dopo la chiamata dell'operazione MarkInitialLoadEnd all'attività di controllo CDC. |
ILUPDATE (Initial Load Update) | Si tratta dello stato durante l'esecuzione del pacchetto di aggiornamento Trickle-Feed in seguito al caricamento iniziale, mentre l'elaborazione dell'intervallo di elaborazione iniziale è ancora in corso. Si verifica dopo la chiamata dell'operazione GetProcessingRange all'attività di controllo CDC. Se si usa la colonna __$reprocessing, è impostata su 1 per indicare che il pacchetto potrebbe rielaborare le righe già nella destinazione. |
TFEND (Trickle-Feed Update Ended) | Si tratta dello stato previsto per le esecuzioni CDC normali. Indica che l'esecuzione precedente è stata completata e che è possibile avviare una nuova esecuzione con un nuovo intervallo di elaborazione. |
TFSTART | Questo è lo stato in un'esecuzione non iniziali del pacchetto di aggiornamento del feed trickle, dopo la chiamata dell'operazione GetProcessingRange all'attività di controllo CDC. Ciò indica che un'esecuzione CDC regolare viene avviata ma non è stata completata o non è ancora stata completata correttamente (MarkProcessedRange). |
TFREDO (Reprocessing Trickle-Feed Updates) | Si tratta dello stato di GetProcessingRange che si verifica dopo TFSTART. Ciò indica che l'esecuzione precedente non è stata completata correttamente. Se si usa la colonna __$reprocessing, è impostata su 1 per indicare che il pacchetto potrebbe rielaborare le righe già nella destinazione. |
ERROR | Il gruppo CDC si trova in uno stato ERROR. |
Di seguito sono riportati esempi di valori della variabile di stato CDC.
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/
TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/
TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/
TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/
Per definire una variabile di stato CDC
In SQL Server Data Tools aprire il pacchetto SQL Server 2019 Integration Services (SSIS) con il flusso CDC in cui è necessario definire la variabile.
Selezionare la scheda Esplora pacchetti e aggiungere una nuova variabile.
Assegnare un nome alla variabile in modo da poterla riconoscere come variabile di stato.
Assegnare alla variabile un tipo di dati String .
Non assegnare alla variabile un valore come parte della relativa definizione. Il valore deve essere impostato tramite l'attività di controllo CDC.
Se si prevede di utilizzare l'attività di controllo CDC con la persistenza automatica dello stato, la variabile di stato CDC viene letta dalla tabella dello stato del database specificata e viene aggiornata di nuovo alla stessa tabella quando il relativo valore cambia. Per altre informazioni sulla tabella Stato, vedere CDC Control Task e CDC Control Task Editor.
Se non si usa l'attività di controllo CDC con la persistenza automatica dello stato, è necessario caricare il valore della variabile dall'archiviazione permanente in cui il valore è stato salvato l'ultima volta che il pacchetto è stato eseguito e per scriverlo nuovamente nell'archivio permanente al termine dell'elaborazione dell'intervallo di elaborazione corrente.
Vedi anche
Attività di controllo CDC
Editor dell'attività di controllo CDC