Definieren einer Statusvariablen
Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory
Wichtig
CDC Flow-Komponenten, einschließlich CDC Control Task, CDC Source und CDC Splitter, sind veraltet. Weitere Details finden Sie in der Ankündigung.
In diesem Verfahren wird beschrieben, wie Sie eine Paketvariable definieren, in der der CDC-Status gespeichert wird.
Die CDC-Statusvariable wird geladen, initialisiert und vom CDC-Steuerungstask aktualisiert. Anschließend wird sie von der CDC-Quelldatenflusskomponente verwendet, um den aktuellen Verarbeitungsbereich für Änderungsdatensätze zu bestimmen. Die CDC-Statusvariable kann für beliebige Containerelemente definiert werden, die vom CDC-Steuerungstask und der CDC-Quelle gemeinsam verwendet werden. Dies kann auf Paketebene erfolgen, kann sich aber auch auf anderen Containern wie einem Schleifencontainer befinden.
Das manuelle Ändern des CDC-Zustandsvariablenwerts wird nicht empfohlen, kann jedoch hilfreich sein, um den Inhalt zu verstehen.
Die folgende Tabelle enthält eine allgemeine Beschreibung der Komponenten von CDC-Statusvariablenwerten.
Komponente | Beschreibung |
---|---|
<state-name> | Der Name des aktuellen CDC-Status. |
CS | Kennzeichnet den aktuellen Startpunkt für den Verarbeitungsbereich (aktueller Start). |
<cs-lsn> | Die letzte in der vorangehenden CDC-Ausführung verarbeitete Protokollfolgenummer (LSN). |
CE | Kennzeichnet den aktuellen Endpunkt für den Verarbeitungsbereich (aktuelles Ende). Das Vorhandensein der CE-Komponente im CDC-Status zeigt an, dass entweder gerade ein CDC-Paket verarbeitet wird oder dass ein CDC-Paketfehler aufgetreten ist, bevor der zugehörige CDC-Verarbeitungsbereich vollständig verarbeitet wurde. |
<ce-lsn> | Die letzte in der aktuellen CDC-Ausführung zu verarbeitende Protokollfolgenummer (LSN). Es wird immer davon ausgegangen, dass die letzte zu verarbeitende Sequenznummer das Maximum (0xFFF...) ist. |
IR | Kennzeichnet den anfänglichen Verarbeitungsbereich. |
<ir-start> | Eine Protokollfolgenummer einer Änderung unmittelbar vor Beginn des erstmaligen Ladevorgangs. |
<ir-end> | Eine Protokollfolgenummer einer Änderung unmittelbar nach Ende des erstmaligen Ladevorgangs. |
TS | Kennzeichnet den Zeitstempel des letzten CDC-Statusupdates. |
<timestamp> | Dezimale 64-Bit-Darstellung der System.DateTime.UtcNow-Eigenschaft. |
ER | Wird angezeigt, wenn der letzte Vorgang fehlerhaft war, und enthält eine kurze Beschreibung der Fehlerursache. Wenn diese Komponente vorhanden ist, wird sie immer zuletzt angezeigt. |
<short-error-text> | Eine kurze Fehlerbeschreibung. |
Die LSNs und Folgenummern sind jeweils als hexadezimale Zeichenfolge von bis zu 20 Ziffern codiert, die den LSN-Wert "Binary(10)" darstellen.
In der folgenden Tabelle werden die möglichen CDC-Statuswerte beschrieben.
Zustand | BESCHREIBUNG |
---|---|
(INITIAL) | Dies ist der Anfangszustand, bevor ein Paket in der aktuellen CDC-Gruppe ausgeführt wurde. Dieser Status liegt auch vor, wenn der CDC-Status leer ist. |
ILSTART (Initial Load Started) | Der Status beim Start des anfänglich geladenen Pakets, nachdem der CDC-Steuerungstask durch den MarkInitialLoadStart -Vorgang aufgerufen wurde. |
ILEND (Initial Load Ended) | Der Status nach erfolgreicher Beendigung des anfänglich geladenen Pakets, nachdem der CDC-Steuerungstask durch den MarkInitialLoadEnd -Vorgang aufgerufen wurde. |
ILUPDATE (Initial Load Update) | Der Status bei der Ausführung des Trickle-Feed-Updatepakets im Anschluss an den erstmaligen Ladevorgang, während der anfängliche Verarbeitungsbereich noch verarbeitet wird. Dieser Schritt erfolgt nach dem Aufruf des CDC-Steuerungstasks durch den GetProcessingRange -Vorgang. Wenn Sie die Spalte __$reprocessing verwenden, wird sie auf 1 festgelegt, um anzugeben, dass das Paket zeilen möglicherweise bereits am Ziel verarbeitet. |
TFEND (Trickle-Feed Update Ended) | Der für reguläre CDC-Ausführungen erwartete Status. Er gibt an, dass die vorherige Ausführung erfolgreich abgeschlossen wurde und eine neue Ausführung mit einem neuen Verarbeitungsbereich gestartet werden kann. |
TFSTART | Dies ist der Zustand für eine nichtinitiale Ausführung des Tricklefeedupdatepakets, nachdem der GetProcessingRange-Vorgangsaufruf an die CDC Control-Aufgabe aufgerufen wurde. Dies gibt an, dass eine normale CDC-Ausführung gestartet wird, aber noch nicht abgeschlossen ist oder noch nicht abgeschlossen ist (MarkProcessedRange). |
TFREDO (Reprocessing Trickle-Feed Updates) | Der Status bei einem GetProcessingRange -Vorgang, der nach TFSTART stattfindet. Dies gibt an, dass die vorherige Ausführung nicht erfolgreich abgeschlossen wurde. Wenn Sie die Spalte __$reprocessing verwenden, wird sie auf 1 festgelegt, um anzugeben, dass das Paket zeilen möglicherweise bereits am Ziel verarbeitet. |
FEHLER | Die CDC-Gruppe befindet sich in einem Fehlerstatus. |
Nachfolgend finden Sie Beispiele für Werte von CDC-Statusvariablen.
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/
So definieren Sie eine CDC-Statusvariable
Öffnen Sie in SQL Server Data Toolsdas SQL Server 2019 Integration Services (SSIS) -Paket, das über den CDC-Fluss verfügt, in dem Sie die Variable definieren müssen.
Wählen Sie die Registerkarte "Paket-Explorer " aus, und fügen Sie eine neue Variable hinzu.
Geben Sie der Variablen einen aussagekräftigen Namen, damit sie als Statusvariable erkennbar ist.
Geben Sie der Variablen den Datentyp Zeichenfolge .
Weisen Sie der Variablen keinen Wert als Teil der Definition zu. Der Wert muss vom CDC-Steuerungstask festgelegt werden.
Wenn Sie beabsichtigen, die CDC-Steuerungsaufgabe mit persistenz automatischem Zustand zu verwenden, wird die CDC-Zustandsvariable aus der von Ihnen angegebenen Datenbankstatustabelle gelesen und wieder auf dieselbe Tabelle aktualisiert, wenn sich der Wert ändert. Weitere Informationen zur Tabelle "Status" finden Sie im CDC Control Task and CDC Control Task Editor.
Wenn Sie die CDC-Steuerungsaufgabe nicht mit der Persistenz des automatischen Zustands verwenden, müssen Sie den Variablenwert aus dem beständigen Speicher laden, bei dem der Wert beim letzten Ausführen des Pakets gespeichert wurde, und sie zurück in den persistenten Speicher zurückschreiben, wenn die Verarbeitung des aktuellen Verarbeitungsbereichs abgeschlossen wurde.